来自响应谷歌的authorization_code

时间:2014-10-15 17:33:32

标签: token google-oauth gmail-api

当我从谷歌获取oauth后尝试请求令牌时,我收到错误

 Response result body {
 "error" : "invalid_request",
 "error_description" : "Required parameter is missing: grant_type"
 }

我知道这个问题是由于grant_type未正确设置,即authorization_code。但是当我请求oauth时,我收到代码和其他信息的回复。我的回复是authResult。我能够得到authResult['code'],但是当我试图得到authResult['authorization_code']时,它会变得不确定。任何人都可以帮助如何从authResult响应中获取authorization_code。

我对oauth的要求:

 <span id="signinButton">
          <span
            class="g-signin"
            data-callback="signinCallback"
            data-clientid="clientid"
            data-cookiepolicy="single_host_origin"                
            data-scope="https://www.googleapis.com/auth/plus.login"
            data-response_type="code"
            data-redirect_uri="http://test-on.ap1.visual.force.com/apex/Gmail_inbox">
          </span>
    </span>

     function signinCallback(authResult) {
          if (authResult['status']['signed_in']) {
          }
     }

2 个答案:

答案 0 :(得分:0)

你不会得到authResult [authorization_code]只需在你的网址中传递grant_type = authorization_code。这对你有用。

答案 1 :(得分:0)

好吧,我没有从你更新的问题中得到任何结果,但我仍在写这里获取代码和令牌的整个过程。

  1. 发出http请求https://accounts.google.com/o/oauth2/auth?redirect_uri=http://test-on.ap1.visual.force.com/apex/Gmail_inbox&response_type=code&client_id= {clientId}&amp; scope = https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.login&amp; approval_prompt = force&amp; access_type = offline
  2. 回复您将在此处获得代码,然后

    2.制作一个获取令牌的帖子请求  网址将是

    代码= {YOUR_CODE}&安培; REDIRECT_URI = http://test-on.ap1.visual.force.com/apex/Gmail_inbox&client_id= {你的客户-ID}&安培;范围= HTTPS%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.login&安培; client_secret = {您的-client秘密}&安培; grant_type = authorization_code

    在这里,您将获得令牌令牌作为回复