Google Oauth 2获取访问令牌并从授权码刷新令牌

本杰明54

我在javascript的帮助下获得了授权代码。现在在服务器上,我需要交换刷新令牌。这是我的代码。

    byte[] buffer = Encoding.ASCII.GetBytes("code=" + "....."
        + "&client_id=.....&client_secret=...&redirect_uri=https%3A%2F%2Fmysite.com%2Fportal%2F&grant_type=authorization_code");
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://accounts.google.com/o/oauth2/token");

    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";
    req.ContentLength = buffer.Length;

    Stream strm = req.GetRequestStream();
    strm.Write(buffer, 0, buffer.Length);
    strm.Close();

    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

它引发异常Bad request,而内部异常为null。

更新:

我在ASP.NET MVC 4应用程序中使用它。由于它是异步操作,因此我切换到Visual Studio2013。我使用以下代码修改了代码await

UserCredential credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                        new[] { 
                        GmailService.Scope.GmailCompose, GmailService.Scope.GmailModify, GmailService.Scope.GmailReadonly
                        },
                    "user", 
                    CancellationToken.None
                    ) ;

在此语句中,它挂起了浏览器(类似于问题)。我尝试放置日志,没有例外,也没有进一步执行。

戴姆敦

Google身份验证的第一步是响应类型代码它是一个HTTP GET,基本上只是打开一个新的浏览器窗口。用户接受您的身份验证后,您将获得一个身份验证码,然后必须将其返回到您的应用程序。它还显示在浏览器标题中。

https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code

有关这三个步骤的完整说明,请参见此处。Google 3 Legged oauth2

我不确定我是否理解您为什么这样做。使用Google .net客户端库要容易得多。NuGet Google客户端库我不确定您打算访问哪个API,但可以使用nuget将其谷歌浏览,您应该找到要安装的正确库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google Oauth 2获取访问令牌并从授权码刷新令牌

来自分类Dev

使用OAuth刷新令牌获取新的访问令牌-Google API

来自分类Dev

无法使用Google OAuth 2获取刷新令牌

来自分类Dev

无法使用Google OAuth 2获取刷新令牌

来自分类Dev

Google OAuth2 API刷新令牌

来自分类Dev

如何从password.js中的刷新令牌获取新的Google oauth访问令牌

来自分类Dev

如何从password.js中的刷新令牌获取新的Google oauth访问令牌

来自分类Dev

Google OAuth 2.0刷新令牌

来自分类Dev

OAuth2的目的是使用授权码刷新令牌

来自分类Dev

无法获取Google OAuth令牌

来自分类Dev

使用OAuth 2.0 Google App Engine刷新访问令牌

来自分类Dev

刷新访问令牌时出现 Google OAuth 403

来自分类Dev

使用VBA和Oauth2交换Google Calendar API的访问令牌的授权代码

来自分类Dev

使用OAuth.io从Google获取刷新令牌

来自分类Dev

如何使用刷新和访问使用Oauth操场授权的令牌来调用Google Action中的People API?

来自分类Dev

Google OAuth2:以编程方式吊销特定的刷新令牌(但无法访问应用)

来自分类Dev

OAuth 2 Google API刷新令牌为空

来自分类Dev

带有刷新令牌的春季Google OAuth2

来自分类Dev

无法从Google API OAuth2刷新令牌

来自分类Dev

如何使用Google OAuth2 Javascript库获取刷新令牌?

来自分类Dev

如何为asp.net Web应用程序获取Google Api OAuth 2刷新令牌?

来自分类Dev

通过Google获取访问令牌OAuth时抛出FlowExchangeError

来自分类Dev

Google oAuth2访问令牌:“ invalid_grant”

来自分类Dev

OAuth v2(Google API)过期访问令牌

来自分类Dev

使用纯Javascript或JQuery的Google OAuth 2访问令牌

来自分类Dev

google OAUTH2交换访问权限代码以获取acces令牌“无效请求”

来自分类Dev

google OAUTH2交换访问权限代码以获取acces令牌“无效请求”

来自分类Dev

Google OAuth2授权OAuth令牌错误:redirect_uri_mismatch

来自分类Dev

Google Oauth2:刷新OAuth2令牌时出错,消息:'{“ error”:“ invalid_grant”}'

Related 相关文章

  1. 1

    Google Oauth 2获取访问令牌并从授权码刷新令牌

  2. 2

    使用OAuth刷新令牌获取新的访问令牌-Google API

  3. 3

    无法使用Google OAuth 2获取刷新令牌

  4. 4

    无法使用Google OAuth 2获取刷新令牌

  5. 5

    Google OAuth2 API刷新令牌

  6. 6

    如何从password.js中的刷新令牌获取新的Google oauth访问令牌

  7. 7

    如何从password.js中的刷新令牌获取新的Google oauth访问令牌

  8. 8

    Google OAuth 2.0刷新令牌

  9. 9

    OAuth2的目的是使用授权码刷新令牌

  10. 10

    无法获取Google OAuth令牌

  11. 11

    使用OAuth 2.0 Google App Engine刷新访问令牌

  12. 12

    刷新访问令牌时出现 Google OAuth 403

  13. 13

    使用VBA和Oauth2交换Google Calendar API的访问令牌的授权代码

  14. 14

    使用OAuth.io从Google获取刷新令牌

  15. 15

    如何使用刷新和访问使用Oauth操场授权的令牌来调用Google Action中的People API?

  16. 16

    Google OAuth2:以编程方式吊销特定的刷新令牌(但无法访问应用)

  17. 17

    OAuth 2 Google API刷新令牌为空

  18. 18

    带有刷新令牌的春季Google OAuth2

  19. 19

    无法从Google API OAuth2刷新令牌

  20. 20

    如何使用Google OAuth2 Javascript库获取刷新令牌?

  21. 21

    如何为asp.net Web应用程序获取Google Api OAuth 2刷新令牌?

  22. 22

    通过Google获取访问令牌OAuth时抛出FlowExchangeError

  23. 23

    Google oAuth2访问令牌:“ invalid_grant”

  24. 24

    OAuth v2(Google API)过期访问令牌

  25. 25

    使用纯Javascript或JQuery的Google OAuth 2访问令牌

  26. 26

    google OAUTH2交换访问权限代码以获取acces令牌“无效请求”

  27. 27

    google OAUTH2交换访问权限代码以获取acces令牌“无效请求”

  28. 28

    Google OAuth2授权OAuth令牌错误:redirect_uri_mismatch

  29. 29

    Google Oauth2:刷新OAuth2令牌时出错,消息:'{“ error”:“ invalid_grant”}'

热门标签

归档