2017-06-14 22 views
1

私はSpreadsheed APIと「スコープ」に問題があります。 これらのスクリプトでは、シート上のセルを更新したいと思います。php GoogleスプレッドシートAPI「要求には認証スコープが不十分です」

私はコンポーザーで動作しません。ちょうどそれを挿入する際にパッケージをダウンロードしました。トークンは既に存在し、エラーは次の行からです。

"$ response = $ service-> spreadsheets_values-> get($ spreadsheetId、$ range);"スプレッドシートの値にアクセスするために
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);

<?php 
session_start(); 
require_once __DIR__.'/vendor/autoload.php'; 

$client = new Google_Client(); 
$client->setAuthConfig('oauth-credentials.json'); 

$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY); 

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) 
{ 
     $client->setAccessToken($_SESSION['access_token']); 

     echo "<pre>"; 
     $service = new Google_Service_Sheets($client); 
     $spreadsheetId = 'xxx'; 
     $range = 'Tabellenblatt1!A2:E'; 

     $response = $service->spreadsheets_values->get($spreadsheetId, $range); 
     $values = $response->getValues(); 

     if (count($values) == 0) { 
      print "No data found.\n"; 
     } else { 
      print "Name, Major:\n"; 
      foreach ($values as $row) { 
      // Print columns A and E, which correspond to indices 0 and 4. 
      printf("%s, %s <br>", $row[0], $row[4]); 
      } 
     } 
    } else { 
     $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/api/oauth2callback.php'; 

     header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); 
    } 
?> 

これらのコードは、次のエラー

Fatal error: Uncaught exception 'Google_Service_Exception' with message '{ 
    "error": { 
    "code": 403, 
    "message": "Request had insufficient authentication scopes.", 
    "errors": [ 
     { 
     "message": "Request had insufficient authentication scopes.", 
     "domain": "global", 
     "reason": "forbidden" 
     } 
    ], 
    "status": "PERMISSION_DENIED" 
    } 
} 
+0

誰のアイデア? –

答えて

0

をもたらしますが、この範囲が定義されてい
$response = $service->spreadsheets_values->get($spreadsheetId, $range);

あなたが持っている必要があります。
$client->addScope(Google_Service_Sheets::SPREADSHEETS_READONLY);
または
$client->addScope(Google_Service_Sheets::SPREADSHEETS);

出典:
https://developers.google.com/identity/protocols/googlescopes#sheetsv4

関連する問題