我正在制作一个PHP应用程序,它将使用单个google drive帐户。
所以作为一个管理员,我首先给权限谷歌驱动器帐户。当权限被接受时,我将刷新令牌保存在数据库中。
之后,在客户端使用的另一个URL中,我正在尝试验证。
接下来,我从数据库中提取刷新令牌,然后向
发出post请求:$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 ...
我错过了什么吗?我使用的流量是否正确?
提前感谢!
当您从刷新令牌获得访问令牌时,该访问令牌本身就是一个凭证,此后没有交换过程。在凭证中,有:1。访问令牌2。刷新令牌。并且您通过交换授权代码获得凭证,而不是访问令牌。因此,在您的代码中,在试图获得访问令牌以交换访问令牌的过程中发生错误。