google-calendar-api - 设置范围 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 中抛出
解决方案
谷歌官方文档,将范围设置的语法指定为:
$gClient->setScopes(Google_Service_Calendar::CALENDAR_READONLY);
推荐阅读
- .net-core - 验证失败:InvalidRoleName
- amazon-cloudwatch - 部署 AWS Container Insights 和 X-Ray
- javascript - 无法在 react-facebook-login 中获取所需的 redirect_uri
- sql - 如何避免在行中显示重复值
- xamarin.forms - 在 Xamain.Forms 上获取最近通话列表
- intellij-idea - 如何创建一个复制我正在工作的 IntelliJ 项目的 sbt 构建文件?
- r - 来自异质线性混合效应模型包 (lcmm) 的主题特定预测
- postgresql - npgsql 无法从容器内部连接到 Unix 套接字
- java - tarsosdsp 运行时无法在其他应用上使用麦克风
- python - 如何使用 OpenGL 的顶点在 MayaVi 中绘制 3D 模型?