我使用ClientLogin身份验证已经使用C#代码访问谷歌阅读器很长一段时间了。我一直在为Windows 8开发Google Reader客户端,并决定使用更安全的OAuth 2身份验证。我可以登录,获取访问令牌和刷新令牌,但我没有使用访问令牌使任何api调用获得401 Unauthorized错误。我的令牌带有许多以“ya29”开头的字符。我希望令牌是对的。我正在使用HttpClient类,同时将“Authorization:”标头传递给它。有人可以帮帮我吗?以下是我的代码段
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;
}
答案 0 :(得分:1)
您似乎没有使用正确的授权标头格式。根据{{3}},标题应为:
Authorization: Bearer ya29.xxxxxxxxxxxx
答案 1 :(得分:0)
我建议使用RestSharp。它比HttpClient更容易使用,另外还支持OAuth 1&amp; 2.这是一个如何使用它的教程:
http://www.codeproject.com/Articles/321291/Google-OAuth2-on-Windows-Phone
答案 2 :(得分:0)
我可以提出建议吗?
我讨厌编写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/