Oauth 谷歌授权头不正确(401错误)

Oauth 谷歌授权头不正确(401错误),oauth,google-api,Oauth,Google Api,我试图在我的web服务器中使用两条腿的OAuth()创建一个文档(非常非常基本) 代码如下: !* Clicked: Run Btn * ThisWebClient.SetAllHeadersDefault() ThisWebClient.HeaderOnly = 0 ThisWebClient.Host = 'http://docs.google.com' ThisWebClient.ContentType = 'application/atom+xml' ThisWebClient.Aut

我试图在我的web服务器中使用两条腿的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>')
!*点击:运行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=“…谷歌用户内容字符串…”&|
'oauth_signature_method=“HMAC-SHA1”&|
'oauth_signature=“…签名字符串…”
ThisWebClient.Post('https://docs.google.com/feeds/documents/private/full?xoauth_requestor_id=stu.a%40sandersnoonan.com',|
‘剪东西’)
(截图,最初发布)

我当前收到一个401错误,未知授权头。

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

有什么想法吗?

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


谷歌还为签名步骤提供了支持。

请下次将您的代码作为文本包含在代码块中,而不是作为image.Done。包括代码。谢谢你的提醒。嗨,简,谢谢你的信息。我正在阅读该页面上的“签名OAuth请求”部分,在第2、3点下方,如果我读对了,那么我在我的谷歌应用程序“密钥”部分使用消费者机密。这就是我所做的。这并不意味着,
oauth\u signature=CONSUMER\u SECRET
,而是必须使用构造的
base\u字符串和
CONSUMER\u SECRET
作为
HMAC\u SHA1
算法的输入参数。所以在伪代码中,比如:
oauth\u signature=HMAC\u SHA1(data=base\u string,key=CONSUMER\u SECRET)
Ahhh!好吧,这是有道理的。谢谢你,简,我来试试。