2016-04-28 2 views
0

Laravel5.2と統合されたGoogle APIクライアントに取り組んでいますが、ドライブのアカウントに別のファイルのコンテンツをリストするのに問題があります。Googleサービスドライブが動作していません

クライアントは、利用状況の監視上の要求はOK表示されcredientialsやGoogleなどのサービスにアクセスして、[OKのようですが、私はまだここに何を取得していない私が使用するコードですよ:

ミドルウェア:

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

サービスアカウントで自分のGoogleドライブのファイルにアクセスできるようにするには、サービスアカウントのメールアドレスに許可を与える必要があります。アクセス許可が正しく設定されると、サービスアカウントがアクセスを許可されているファイルが一覧に表示されます。