google oauth2 grant_type = authorization_code返回处理OAuth 2请求时出错

时间:2012-05-16 09:36:03

标签: oauth

代码段

帖子网址为https://accounts.google.com/o/oauth2/token

范围为'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.google.com/m8/feeds/'

grant_type as authorization_code

代码来自谷歌

        my %args = (
            client_id     => $config->{client_id},
            client_secret => $config->{client_secret},
            redirect_uri  => $config->{redirect_uri},
            scope         => $config->{scope},
            grant_type    => $config->{grant_type},
            code          => $code,
        );
        my $ua = LWP::UserAgent->new;
        my $ua_response = $ua->post( $uri, \%args );

我得到的是如下所示:(响应是html转义)

$VAR1 = \bless( {

'_content' => '<HTML> <HEAD> <TITLE>Error processing OAuth 2 request</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <H1>Error processing OAuth 2 request</H1> <H2>Error 500</H2> </BODY> </HTML> ',
'_headers' => bless( { 'cache-control' => 'no-cache, no-store, max-age=0, must-revalidate', 'client-date' => 'Wed, 16 May 2012 09:21:26 GMT', 'client-peer' => '173.194.74.84:443', 'client-response-num' => 1, 'client-ssl-cert-issuer' => '/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA', 'client-ssl-cert-subject' => '/C=US/ST=California/L=Mountain View/O=Google Inc/CN=accounts.google.com', 'client-ssl-cipher' => 'RC4-SHA', 'client-ssl-warning' => 'Peer certificate not verified', 'connection' => 'close', 'content-type' => 'text/html; charset=UTF-8', 'date' => 'Wed, 16 May 2012 09:21:21 GMT', 'expires' => 'Fri, 01 Jan 1990 00:00:00 GMT', 'pragma' => 'no-cache', 'server' => 'GSE', 'title' => 'Error processing OAuth 2 request', 'x-content-type-options' => 'nosniff', 'x-frame-options' => 'SAMEORIGIN', 'x-xss-protection' => '1; mode=block' }, 'HTTP::Headers' ),

'_msg' => 'Error processing OAuth 2 request',

'_protocol' => 'HTTP/1.1',

'_rc' => '500',

'_request' => bless( { '_content' => 'grant_type=authorization_code&redirect_uri=http%3A%2F%2Fwww.xxx.com%2Foauth%2Fcallback%2Fgoogle&client_secret=xxx&client_id=xxx.apps.googleusercontent.com&code=4%2FSihUM4Zw1OPiWLMi-gdGvKOfiY4M.cggfQHKT31QagrKXntQAax3e4-qpbgI&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2F', 
'_headers' => bless( { 'content-length' => 424, 'content-type' => 'application/x-www-form-urlencoded', 'user-agent' => 'libwww-perl/6.04' }, 'HTTP::Headers' ),
 '_method' => 'POST', 
'_uri' => bless( do{\(my $o = 'https://accounts.google.com/o/oauth2/token')}, 'URI::https' ), 
'_uri_canonical' => ${$VAR1}->{'_request'}->{'_uri'} }, 

'HTTP::Request' ) }, 'HTTP::Response' );

实际上它有时会起作用但不适用于所有情况。

有什么不对吗?

1 个答案:

答案 0 :(得分:0)

在尝试获取某些客户端的访问令牌时,我们也遇到了同样的问题。这些客户的位置是澳大利亚,日本,中国等,我们的服务器在德国。其他人也遇到了同样的问题(https://groups.google.com/d/msg/google-content-api-for-shopping/Cx2hp8Ey5Sc/uBHqkwbTbXoJ),所以这个问题还没有得到解决......