2016-11-15 7 views
1

Ich benutze google oauth v2 HTTP-Anfrage, um den Zugriff toke, die gut funktioniert, ich bekomme das Token, aber wenn ich den Token für den Zugriff auf eine Tabelle bekomme ich einen 403 bekommen Error.Google Sheet API php curl bekommen Anfrage

Dies ist der Anforderungscode, den ich verwende.

$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); 

Und das ist die Rückkehr mit dem Header

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" 
    } 
} 

Ich habe müde, um das Blatt öffentlich zu machen, aber das macht kein Unterschied zu den Fehlern. Der Fehler wird auch nicht auf der API-Konsole angezeigt.

Dies sind die Bereiche ich verwende:

{ 
    "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.' 
} 

Was mache ich falsch?

+2

Der Benutzer, den Sie authentifizieren, hat keinen Zugriff auf dieses Blatt. Stellen Sie außerdem sicher, dass Sie den richtigen Bereich zum Authentifizieren des Benutzers verwendet haben. – DaImTo

+0

Ich habe es in der API-Konsole eingeschaltet. Gibt es woanders muss ich das Blatt für diesen Benutzer aktivieren? – sacarr

Antwort

2

das Problem

Gelöst

Das Blatt ich mit meiner Client-ID (E-Mail-Adresse) Rechtsklick auf dem Blatt in der Google Drive und gemeinsam mit der E-Mail-Adresse benötigten Sharing zugreifen wollte.

Buchung für jeden mit dem gleichen Problem.