【问题标题】:Request for Request Token from Intuit IPP gives permission denied来自 Intuit IPP 的请求令牌请求授予权限被拒绝
【发布时间】:2013-08-23 20:03:10
【问题描述】:

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

这是返回的错误:“Post https://oauth.intuit.com/oauth/v1/get_request_token: permission denied”

这里是请求标头

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,它在我的本地开发站点上运行得很好,但是当我从我的实时站点拨打电话时给了我“权限被拒绝”错误。我认为开发应用程序引擎服务器创建请求的方式与实时引擎的方式存在一些差异,但我不确定究竟是什么。

有什么想法吗?

【问题讨论】:

  • 你能用 ApiExplorer 试试这个吗? developer.intuit.com/apiexplorer?apiname=V2QBO
  • 是的,玛纳斯,你应该知道我可以,因为你帮助我解决了一些关于我的项目的其他问题;)
  • 我可以使用 API Explorer 轻松连接(即使使用完全相同的令牌/秘密),就像我说的,我的本地开发应用程序连接得很好。我觉得这可能是我的 IPP 帐户的设置,或者我正在发送(或不发送)的标题......
  • 是的,布莱尔。但是如果不查看您的代码,就很难判断到底发生了什么。您可以使用 Fiddler(或任何其他 http 窥探器)之类的工具来查看从您的应用程序传递的 Http URL 和标头 r。您可以将其与 ApiExplorer 进行比较。这可能会有所帮助。
  • 嗨 Blair,我应该猜到你在使用 GAE 和 Go。在 GAE 中,对低级套接字有一些限制。请参考-stackoverflow.com/questions/16400557/…。我没有使用 GAE 对其进行测试。所以,目前我没有任何具体的答案。谢谢

标签: google-app-engine go intuit-partner-platform


【解决方案1】:

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

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

问题解决了!

【讨论】:

    猜你喜欢
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2019-07-17
    • 2019-03-02
    相关资源
    最近更新 更多