Oauth2 on Google Contacts API for DotNet - 令牌无效 – AuthSub 令牌



我创建了一个类,授权 vb.net 应用程序使用Oauth2访问Google Fusion Tables。如果需要,它会以表单形式打开 Web 浏览器,加密并存储刷新令牌,并且效果很好。我可以访问融合表数据。

但是,我也想访问联系人。我已请求用户访问联系人。

我可以检索适用于融合表的 AccessToken,并尝试了不同的技术来让联系人工作,但没有运气。我不断收到 401 未经授权的错误。但是如果我使用客户端登录,我可以让联系人工作。

任何帮助将不胜感激。

我的最新尝试:

Dim rs As New RequestSettings("App Name", p.AccessToken) 'String retrieved from class
Dim cr As New ContactsRequest(rs)
Dim q As New FeedQuery
q.Uri = New Uri("http://www.google.com/m8/feeds/contacts/<EMAIL>/full/<IDCODE>")
Dim c As New Contact
c = cr.Retrieve(Of Contact)(q)

您必须请求访问联系人 API OAuth 范围,该范围为 https://www.google.com/m8/feeds/

.NET 客户端库包括使用联系人 API 的 OAuth 2.0 示例:

https://code.google.com/p/google-gdata/source/browse/trunk/clients/cs/samples/oauth2_sample/oauth2demo.cs

感谢克劳迪奥·凯鲁比诺的建议。我实际上已经在使用那个范围了。值得庆幸的是,我现在终于找到了答案。

我真的少了一封信:

q.Uri = New Uri("http://www.google.com/m8/feeds/contacts/<EMAIL>/full/<IDCODE>")

。是错误的,因为我要求的范围确实是:

https://www.google.com/m8/feeds/

所以 Uri 需要与 httpS 匹配。我添加了"s",它可以工作。正确的代码如下:

q.Uri = New Uri("https://www.google.com/m8/feeds/contacts/<EMAIL>/full/<IDCODE>")

非常感谢这篇文章的回答:http://www.geoffmcqueen.com/2010/03/14/token-invalid-authsub-token-has-wrong-scope-oauth-google-problem

相关内容

  • 没有找到相关文章

最新更新