【问题标题】:Get google reader subscription list using OAuth 2 authentication in C#在 C# 中使用 OAuth 2 身份验证获取谷歌阅读器订阅列表
【发布时间】:2013-01-14 06:42:48
【问题描述】:

很长一段时间以来,我一直在使用 ClientLogin 身份验证在 C# 代码中访问谷歌阅读器。我一直在为 Windows 8 开发 Google Reader 客户端,并决定使用更安全的 OAuth 2 身份验证。我可以登录,获取访问令牌和刷新令牌,但我未能使用访问令牌进行任何 api 调用,得到 401 Unauthorized 错误。我的令牌带有许多以“ya29.”开头的字符。我希望令牌是正确的。我正在使用 HttpClient 类,同时将“授权:”标头传递给它。有人可以帮我吗?下面是我的代码sn-p

private async Task<string> HttpGet()
    {
    string url = "http://www.google.com/reader/api/0/subscription/list";
        HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Add("Authorization", 
            String.Format("OAuth access_token={0}", Token);

        var response = await client.GetAsync(url);
        var content = await response.Content.ReadAsStringAsync();
        return content;
    }

【问题讨论】:

    标签: c# oauth windows-8 google-reader google-oauth


    【解决方案1】:

    您似乎没有使用正确的授权标头格式。根据https://developers.google.com/accounts/docs/OAuth2WebServer#callinganapi,标题应该是:

    Authorization: Bearer ya29.xxxxxxxxxxxx
    

    【讨论】:

      【解决方案2】:

      我推荐使用 RestSharp。它比 HttpClient 更容易使用,此外还支持 OAuth 1 和 2。这里有一个关于如何使用它的教程:

      http://www.codeproject.com/Articles/321291/Google-OAuth2-on-Windows-Phone

      【讨论】:

      • Restsharp 似乎不支持 Windows RT。仍在寻找替代品。那么是不是 HttpClient 不完全支持 Oauth 2 呢?
      • 非常感谢兄弟。我设法使用了 Devinrader 的 RestSharp 的分叉版本。它很粗糙,但仍然像魅力一样工作。我讨厌 WinRT。突然之间,我在 .NET 中的所有知识都变得毫无用处,我必须从头开始学习
      【解决方案3】:

      我可以提个建议吗?

      我讨厌编写 oauth 代码。

      向您的应用程序添加 Google 身份验证的最简单方法是使用 Windows Azure 移动服务 (WAMS)。 WAMS 将通过他们的 SDK 为您处理 oauth 详细信息,该 SDK 还支持 Live ID、FaceBook 和 Twitter。它是 C# 和 JavaScript、Android 和 iOS。最重要的是,它是免费的。

      引用:http://www.windowsazure.com/en-us/home/features/mobile-services/

      【讨论】:

      • 有关于如何使用 WAMS 和 Google Auth 的示例吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 2020-10-22
      • 1970-01-01
      • 2022-10-12
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      相关资源
      最近更新 更多