我正在制作一个PHP应用程序,它将使用一个google驱动器帐户。
因此,作为管理员,我首先授予google云端硬盘帐户的权限。 接受权限后,我将刷新令牌保存在数据库中。
之后,在不同的URL中,客户端将使用,我正在尝试进行身份验证。
接下来,我从数据库中提取刷新令牌,然后发出一个帖子请求:
$url = "https://accounts.google.com/o/oauth2/token";
带参数:
$post_data = array(
'client_id' => CLIENT_ID,
'client_secret' => CLIENT_SECRET,
'refresh_token' => $refreshToken,
'grant_type' => 'refresh_token' );
获得成功响应后,我保存了access_token,但是当我尝试将其换成凭据时,我收到此错误消息:
An error occurred: Error fetching OAuth2 access token, message: '
Error processing OAuth 2 request
Error 500
'
Fatal error: Uncaught exception 'CodeExchangeException' in ...
我在这里遗漏了什么吗? 我使用的oauth流量是否正确?
提前致谢!
答案 0 :(得分:1)
当您从刷新令牌获取访问令牌时,该访问令牌本身就是凭证,之后没有交换过程。在凭证中,有:1。访问令牌2.刷新令牌。并且您获得凭证以交换授权代码,而不是访问令牌。因此,在您的代码中,在尝试获取访问令牌以交换访问令牌的过程中发生错误。