2016-04-28 125 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上的文件,我得給權限的服務帳戶的電子郵件地址。一旦權限設置正確,該列表就會填充允許服務帳戶訪問的文件。

相關問題