首页 > 解决方案 > 设置范围 calendar.readonly 导致谷歌登录错误

问题描述

添加范围“ https://www.googleapis.com/auth/calendar.readonly ”后导致以下错误。

$gClient = new Google_Client();     
$gClient->setApplicationName('Login');
$gClient->setClientId($google_client_id);
$gClient->setClientSecret($google_client_secret);
$gClient->setRedirectUri($google_redirect_url);
$gClient->setScopes(array('https://www.googleapis.com/auth/calendar.readonly'));

收到的错误是

致命错误:未捕获的异常“Google_ServiceException”和消息“调用 GET https://www.googleapis.com/oauth2/v2/userinfo时出错:(401) 请求缺少所需的身份验证凭据。预期的 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据。请参阅https://developers.google.com/identity/sign-in/web/devconsole-project。在 C:\xampp\htdocs\bvs\online-payment\src\io\Google_REST.php:66 堆栈跟踪:#0 C:\xampp\htdocs\bvs\online-payment\src\io\Google_REST.php(36 ): Google_REST::decodeHttpResponse(Object(Google_HttpRequest)) #1 C:\xampp\htdocs\bvs\online-payment\src\service\Google_ServiceResource.php(177): Google_REST::execute(Object(Google_HttpRequest)) #2 C:\xampp\htdocs\bvs\online-payment\src\contrib\Google_Oauth2Service.php(37): Google_ServiceResource->__call('get', Array) #3 C:\xampp\htdocs\bvs\online-payment\ login.php(49): Google_UserinfoServiceResource->get() #4 {main} 在第 66 行的 C:\xampp\htdocs\bvs\online-payment\src\io\Google_REST.php 中抛出

标签: google-calendar-apigoogle-signin

解决方案


谷歌官方文档,将范围设置的语法指定为:

 $gClient->setScopes(Google_Service_Calendar::CALENDAR_READONLY);

推荐阅读