我正在尝试使用我从Google Developers Playground(OAuth 2.0)获得的令牌ID制作返回Google用户个人资料的API。我已阅读并遵循指南,但当我尝试使用我的代码时,它会显示id_token must be passed in or set as part of setAccessToken
。这是我的代码:
$id_token = $this->input->post('id_token');
$id_event = $this->input->post('id_event');
$client = new Google_Client(['client_id' => GOOGLE_CLIENT_ID]);
$payload = $client->verifyIdToken($id_token); //It's error here
起初它运行良好,但当我再次尝试运行时,错误显示出来。我该怎么办?
以下是完整的错误消息:
Type: LogicException
Message: id_token must be passed in or set as part of setAccessToken
Filename: D:\XAMPP\htdocs\api\application\vendor\google\google-api-php-client\src\Google\Client.php
Line Number: 702
Backtrace:
File: D:\XAMPP\htdocs\api\application\controllers\C_android_api.php
Line: 190
Function: verifyIdToken
File: D:\XAMPP\htdocs\api\index.php
Line: 315
Function: require_once
答案 0 :(得分:1)
请参阅我的解决方案here
当我提供“email”范围时,修复了以下问题“id_token必须传入或设置为setAccessToken的一部分”。
即,
$client->addScope("email");
此处的参考和完整示例:https://github.com/google/google-api-php-client/blob/master/examples/idtoken.php
希望这有帮助。