我在本地开发网站上这样做没有问题。但是,当我尝试从我的实时网站设置与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,它在我的本地开发站点上运行得很好,但是当我从我的实际站点拨打电话时,它给了我“权限被拒绝”的错误。我认为开发应用引擎服务器通过实时引擎的方式创建请求的方式有所不同,但我不确定是什么。
有什么想法吗?
答案 0 :(得分:2)
尤里卡!我想到了!谢谢你,玛纳斯,如果没有你给出的最后一个链接,我就不会找到这个解决方案。对于任何想知道的人:我必须使用appengine.urlfetch库创建自定义http.Client。一旦我弄明白,解决方案很简单,我只需要将创建客户端的一行代码更改为:
client := urlfetch.Client(appengine.NewContext(r))
问题解决了!