0

我在我的本地开发站点上这样做没有问题。但是,当我尝试从我的实时站点设置与 QuickBooks 文件的新连接时,我收到权限被拒绝错误。

这是返回的错误:“发布https://oauth.intuit.com/oauth/v1/get_request_token:权限被拒绝”

这是请求标头

Content-Type
  application/x-www-form-urlencoded

Authorization
  OAuth oauth_consumer_key="MY_KEY",
  oauth_nonce="MY_NONCE",
  oauth_signature="MY_SIG",
  oauth_signature_method="HMAC-SHA1",
  oauth_timestamp="1377287041",
  oauth_version="1.0"

这是请求正文:

oauth_callback=http%3A%2F%2Fwww.intheloop-notes.com%2Fqb%2Fconnect%2Freturn%2F

- - 编辑 - -

响应完全为零,我的 Go 代码出现错误:

response, err := client.Do(request)

这就是为什么我在这个问题中添加了几个标签(go 和 google-app-engine)来尝试扩大我的受众。我很确定错误在于我的 OAuth 库发送请求的方式。我正在使用这个库:https ://github.com/kurrik/oauth1a ,它在我的本地开发站点上运行得很好,但是当我从我的实时站点拨打电话时给了我“权限被拒绝”错误。我认为开发应用程序引擎服务器创建请求的方式与实时引擎的方式存在一些差异,但我不确定究竟是什么。

有任何想法吗?

4

1 回答 1

2

尤里卡!我想到了!谢谢你,玛纳斯,如果没有你提供的最后一个链接,我不会找到这个解决方案。对于任何想知道的人:我必须使用 appengine.urlfetch 库创建一个自定义 http.Client。一旦我弄清楚了,解决方案很简单,我只需将创建客户端的一行代码更改为:

client := urlfetch.Client(appengine.NewContext(r))

问题解决了!

于 2013-08-26T22:03:40.323 回答