我难住了。我正在尝试手动获取刷新令牌以使用 Perl 在 Mirror API 上为我加载访问令牌,并且它不断给我凭据错误。当我在 PHP 示例代码中加载确切的 HTTP 请求(我已经打印出 HTTP 进行比较)时,相同的 refresh_token 工作正常。
这是我的 Perl HTTP 请求:
*POST https://accounts.google.com/o/oauth2/token 主机:accounts.google.com 用户代理:libwww-perl/6.02 内容长度:175 内容类型:application/x-www-form- urlencoded client_id=client_id_goes_here&client_secret=client_secret_goes_here&refresh_token=refresh_token_goes_here&grant_type=refresh_token*
这是同一个 refresh_token 上的 PHP:
*POST /o/oauth2/token HTTP/1.1 内容类型:application/x-www-form-urlencoded 内容长度:175 client_id=client_id_goes_here&client_secret=client_secret_goes_here&refresh_token=refresh_token_goes_here&grant_type=refresh_token*
我的 Perl 看起来像这样:
my $auth_response = $ua->request(POST 'https://accounts.google.com/o/oauth2/token',
'Host' => 'accounts.google.com',
'Content_Type' => 'application/x-www-form-urlencoded',
'Content' => [
'client_id' => $client_id,
'client_secret' => $client_secret,
'refresh_token' => $credentials->{'refresh_token'},
'grant_type' => 'refresh_token',
],
);
帮助!:-)