2016-11-15 13 views
1

私はgoogle oauth v2 HTTPリクエストを使用してアクセス権を取得しています。トークンを取得していますが、トークンを使用してスプレッドシートにアクセスすると、403エラー。GoogleシートAPI php curl get request

これは私が使用しているリクエストコードです。

$get = 'https://sheets.googleapis.com/v4/spreadsheets/1bHKgQLgqB4PfjRUVPkYk5_L7aQOtZGOkhJbr_RFxQQY?access_token='.$access_token; 

$ch = curl_init(); 

curl_setopt($ch,CURLOPT_URL,$get); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch,CURLOPT_HEADER, false); 
$output = curl_exec($ch); 
curl_close($ch); 

var_dump($output); 

そして、これは私がシートを公開するために疲れてきましたが、それはエラーに違いはありませんヘッダー

HTTP/1.1 403 Forbidden 
Vary: X-Origin 
Vary: Referer 
Content-Type: application/json; charset=UTF-8 
Date: Tue, 15 Nov 2016 13:13:09 GMT 
Server: ESF 
Cache-Control: private 
X-XSS-Protection: 1; mode=block 
X-Frame-Options: SAMEORIGIN 
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34" 
Accept-Ranges: none 
Vary: Origin,Accept-Encoding 
Transfer-Encoding: chunked 

{ 
    "error": { 
    "code": 403, 
    "message": "The caller does not have permission", 
    "status": "PERMISSION_DENIED" 
    } 
} 

とリターンです。エラーはAPIコンソールにも表示されません。私は間違って何をやっている

{ 
    "iss":"[email protected]", 
    "scope":"https://www.googleapis.com/auth/drive  
    https://www.googleapis.com/auth/drive.readonly 
    https://www.googleapis.com/auth/spreadsheets 
    https://www.googleapis.com/auth/spreadsheets.readonly", 
    "aud":"https://accounts.google.com/o/oauth2/token", 
    "exp":'.($time+3600).', 
    "iat":'.$time.' 
} 

これらは私が使用しているスコープですか?

+2

認証しているユーザーがそのシートにアクセスできないように見えます。また、正しいスコープを使用してユーザーを認証したことを確認してください。 – DaImTo

+0

APIコンソールで有効にしました。そのユーザーのためにシートを有効にする必要がある他の場所はありますか? – sacarr

答えて

2

は、私がアクセスしようとしたシートは、右のGoogleドライブにシートをクリックし、メールアドレスと共有する私のクライアントID(メールアドレス) と共有する必要問題に

を解決しました。

同じ問題が発生した場合に投稿してください。