如何解决Google API 错误 - 无法从请求中确定客户端 ID
我正在使用 google-api-php-client 从客户端 0auth 流请求访问令牌,但它返回错误“无法从请求中确定客户端 ID”。
我的代码如下。
我的 client_secret.json:
"web": {
"client_id":"123","project_id":"1234","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"123456789","redirect_uris":[
"http://localhost:7777/v1/oauth2callback"
],"javascript_origins":[
"http://localhost:7777"
]
}
}
我的身份验证 URL 创建:
$client->setAuthConfig(base_path() . '/client_secret.json');
$client->addScope(\Google_Service_Calendar::CALENDAR);
$client->setRedirectUri(URL::to('/') . '/v1/oauth2callback');
$client->setAccessType('offline');
$client->setPrompt('consent');
$client->setIncludeGrantedScopes(true);
$url = $client->createAuthUrl();
print filter_var($url,FILTER_SANITIZE_URL);
然后我将手动转到 URL:
身份验证流程似乎都可以正常工作并将我返回到我尝试解码令牌的网址:
$code = $request->code;
$client = new Google\Client();
$accessToken = $client->fetchAccessTokenWithAuthCode($code);
var_dump($accessToken);
exit;
这给了我这个错误:
array(2) { ["error"]=> string(15) "invalid_request" ["error_description"]=> string(43) "无法从请求中确定客户端 ID。" }
解决方法
发现问题。万一其他人遇到这个问题,这仅仅是因为我在尝试获取访问令牌之前没有加载身份验证配置。
例如在调用 fetchAccessTokenWithAuthCode() 之前添加此行。 $client->setAuthConfig(base_path() .'/client_secret.json');
错误让我失望,我认为这是检索身份验证令牌的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。