【问题标题】:Google Authorization Header Incorrect (401 Error)Google 授权标头不正确(401 错误)
【发布时间】:2012-07-25 06:42:06
【问题描述】:

我正在尝试在我的网络服务器中使用 2-legged OAuth (https://developers.google.com/accounts/docs/OAuth) 创建一个文档(非常基础)。

代码如下:

!* Clicked: Run Btn *

ThisWebClient.SetAllHeadersDefault()
ThisWebClient.HeaderOnly = 0
ThisWebClient.Host = 'http://docs.google.com'
ThisWebClient.ContentType = 'application/atom+xml'
ThisWebClient.Authorization = 'OAuth oauth_version="1.0", '&|
  'oauth_nonce="'&today()&clock()&'", '&|
  'oauth_timestamp="'&clock()&'", '&|
  'oauth_consumer_key="..google user content string..", '&|
  'oauth_signature_method="HMAC-SHA1", '&|
  'oauth_signature="..signature string.."'
ThisWebClient.Post('https://docs.google.com/feeds/documents/private/full?xoauth_requestor_id=stu.a%40sandersnoonan.com',|
  '<atom:entry xmlns:atom="http://www.w3.org/2005/Atom"><atom:category scheme="http://schemas.google.com/g/2005#kind" '&|
  'term="http://schemas.google.com/docs/2007#document" /><atom:title>SNIPS Stuff</atom:title></atom:entry>')

(截图,最初发布)

我目前收到 401 错误,未知授权标头。

-- 这是我第一次使用 OAuth 并使用 Google API 进行开发,所以我可能错过了一些非常简单的东西。

有什么想法吗?

【问题讨论】:

  • 请下次将您的代码作为文本包含在代码块中,而不是图像。
  • 完成。包含代码。感谢您的提醒。

标签: oauth google-api


【解决方案1】:

oauth_signature 不能硬编码到您的代码中。它适用于使用 HMAC-SHA1 计算的每个请求,并取决于您的时间戳、随机数等。

Google 也有 documentation 用于签名步骤。

【讨论】:

  • 您好 Jan,感谢您提供的信息。我正在阅读该页面上的“签署 OAuth 请求”部分,在第 2 点下第 3 点下,如果我没看错,那么我会在我的 Google 应用程序“密钥”部分中使用消费者秘密。我就是这么做的。
  • 这并不意味着oauth_signature = CONSUMER_SECRET,而是您必须使用构造的base_stringCONSUMER_SECRET 作为HMAC_SHA1 算法的输入参数。所以在伪代码中类似于:oauth_signature = HMAC_SHA1(data = base_string, key = CONSUMER_SECRET)
  • 啊!好吧,这是有道理的。谢谢 Jan,我会试一试。
猜你喜欢
  • 2011-06-23
  • 2017-11-23
  • 1970-01-01
  • 2012-04-04
  • 2015-01-27
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多