我正在使用google oauth v2 HTTP请求来获取正常工作的访问权限,我正在获取令牌,但是当使用令牌访问电子表格时,我收到403错误。
这是我正在使用的请求代码。
$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":"dev-537@mortgagetest-149109.iam.gserviceaccount.com",
"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.'
}
我做错了什么?
答案 0 :(得分:2)
解决了问题
我尝试访问的表单需要与我的客户端ID(电子邮件地址)共享 右键单击谷歌硬盘中的工作表,然后与电子邮件地址共享。
为遇到同样问题的任何人发布此信息。