0

GoogleカレンダーAPIプロジェクトをセットアップしました。 OAuth 2.0を使用してGoogle Calendar APIのデータに同意画面でアクセスしています。私はここに述べたプロセスに従っている権限のないクライアントGoogleカレンダーAPI(Google_Service_Exception)

https://developers.google.com/google-apps/calendar/quickstart/php

私は、許可のGoogleアカウントのすべてのカレンダーを取得しようとしていながら。私は、次のエラーを取得しています:ここで

<h1>Google_Service_Exception</h1> 
{ 
"error": "unauthorized_client", 
"error_description": "Unauthorized" 
} 

は、すべてのカレンダーのリストを取得するためのコードです:

$client = $this->getGoogleCalenderClient($clientSecretPath); 

$accessToken = json_decode(file_get_contents($clientSecretPath), true); 

$client->setAccessToken($accessToken); 

if ($client->isAccessTokenExpired()) { 

    $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken()); 
    $result = $s3Client->putObject([ 
     'Bucket' => $bucketName, 
     'Key' => $credentialsPath, 
     'Body' => json_encode($client->getAccessToken()) 
    ]); 
} 

$service = new Google_Service_Calendar($client); 

$calendarList = $service->calendarList->listCalendarList(); 


誰もが、これはここで何が起こっているか知っていますか?どうすればこのエラーを解決できますか?
ご協力いただき、ありがとうございます。

答えて

0

Does anyone know what this is happening here? And how can I fix this error?

サービスアカウントを使用してアプリケーションにアクセスしている場合は、

チェックこのGithubGoogle for domain-wide delegationの公式文書。

次の手順でGoogle Appsドメインの管理者が実行する必要があります。

  1. Go to your Google Apps domain’s Admin console.
  2. Select Security from the list of controls. If you don't see Security listed, select More controls from the gray bar at the bottom of the page, then select Security from the list of controls. If you can't see the controls, make sure you're signed in as an administrator for the domain.
  3. Select Advanced settings from the list of options.
  4. Select Manage third party OAuth Client access in the Authentication section.
  5. In the Client name field enter the service account's Client ID.
  6. In the One or More API Scopes field enter the list of scopes that your application should be granted access to. For example, if your application needs domain-wide access to the Google Drive API and the Google Calendar API, enter: https://www.googleapis.com/auth/drive , https://www.googleapis.com/auth/calendar .
  7. Click Authorize.
関連する問題