在c#中使用OAuth 2认证获取google阅读器订阅列表

本文关键字:google 列表 获取 认证 OAuth | 更新日期: 2023-09-27 17:51:15

我已经使用ClientLogin身份验证在c#代码中访问google reader相当长一段时间了。我一直在为Windows 8开发谷歌阅读器客户端,并决定使用更安全的OAuth 2身份验证。我可以登录,获得访问令牌和刷新令牌,但我未能使用访问令牌进行任何api调用,得到401未经授权的错误。我的代币有很多以"ya29"开头的字符。我希望这个记号是正确的。我正在使用HttpClient类,同时传递"授权:"头给它。有人能帮我一下吗?下面是我的代码片段

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 2认证获取google阅读器订阅列表

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

Authorization: Bearer ya29.xxxxxxxxxxxx

我推荐使用RestSharp。它比HttpClient更容易使用,而且还支持OAuth 1。2. 下面是如何使用它的教程:

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

我可以提个建议吗?

我讨厌写代码。

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

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