How to get access token using gmail api

前端 未结 7 1011
遇见更好的自我
遇见更好的自我 2021-01-01 22:29

I got the authorization code following this document. But when I tried to get access token, I always got errors. Can anyone help me ?

public String AccessTok         


        
7条回答
  •  天涯浪人
    2021-01-01 23:21

    For me your request is fine, I tried it using Curl, I also get a 'HTTP/1.1 400 Bad Request' with the reason why it failed 'invalid_grant' :

    curl -X POST https://www.googleapis.com/oauth2/v4/token -d 'code=4/SVisuz_x*********************&client_id=*******************7vet.apps.googleusercontent.com&client_secret=***************&redirect_uri=https://oauth2-login-demo.appspot.com/code&grant_type=authorization_code'
    

    I receive (HTTP/1.1 400 Bad Request) :

    {
     "error": "invalid_grant",
     "error_description": "Code was already redeemed."
    }
    

    Now using HttpClient from Apache :

    URL obj = new URL(authURL);
    HttpClient client = HttpClientBuilder.create().build();
    HttpPost post = new HttpPost(authURL);
    post.addHeader("Content-Type", "application/x-www-form-urlencoded");
    post.addHeader("Host", "www.googleapis.com");
    post.setEntity(new StringEntity(strBuild.toString()));
    
    HttpResponse resp = client.execute(post);
    System.out.println(resp.getStatusLine());
    System.out.println(EntityUtils.toString(resp.getEntity()));
    

    I see in my console :

    HTTP/1.1 400 Bad Request
    {
     "error": "invalid_grant",
     "error_description": "Code was already redeemed."
    }
    

    Are you sure the code you are using is still valid ? Can you try with a new one ?

提交回复
热议问题