2016-04-28 121 views
0

我谷歌的API客户端上的工作与Laravel5.2整合,我现在面临的问题只是列出不同的文件中的内容到我的硬盘帐户。谷歌服务驱动器不工作

客户端似乎是确定与credientials和访问服务为谷歌的显示要求上使用监控确定,但我仍然得到什么这里是我使用的代码:

中间件:

public function handle($request, Closure $next) 
{ 
    $client_email = '[email protected]'; 
    $private_key = file_get_contents(base_path().'/resources/assets/kribbean-wave.p12'); 

    $scopes = array('https://www.googleapis.com/auth/drive'); 

    $credentials = new \Google_Auth_AssertionCredentials(
     $client_email, 
     $scopes, 
     $private_key 
    ); 

    $client = new \Google_Client(); 
    $client->setAssertionCredentials($credentials); 
    $client->setAccessType('offline'); 

    if ($client->getAuth()->isAccessTokenExpired()){ 

     $client->getAuth()->refreshTokenWithAssertion(); 
     $request->request->set('client',$client); 
    } 

    return $next($request); 
} 

控制器:

class HomeController extends Controller 
{ 
    /** 
    * Create a new controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('Google'); 
    } 

    /** 
    * Show the application dashboard. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index(Request $request) 
    { 
     $client = $request->request->get('client'); 

     $service = new \Google_Service_Drive($client); 
     $result = $service->files->listFiles(); 
     $list = $result->getItems(); 
     dd(json_encode($list)); 
     return view('index')->with('result',$list); 
    } 
} 

中间件按预期工作,但dd(json_encode($list));为空。

你能帮忙吗?

回答

0

为了让服务帐户访问我自己的谷歌Drive上的文件,我得给权限的服务帐户的电子邮件地址。一旦权限设置正确,该列表就会填充允许服务帐户访问的文件。

相关问题