【问题标题】:Can't Flattr an auto submit URL via the REST API无法通过 REST API 扁平化自动提交 URL
【发布时间】:2012-03-17 22:34:08
【问题描述】:

当使用此请求通过 REST V2 API 扁平化自动提交 URL 时

POST https://api.flattr.com/rest/v2/flattr

{"url":"https://flattr.com/submit/auto?user_id=myuserid&url=myurl"}

我收到此错误,尽管 URL 在任何浏览器中都可以正常工作并重定向到现有的东西。

{
  "error_description" : "The requested thing(s) could not be found",
  "error_uri" : "http:\/\/developers.flattr.net\/api",
  "error" : "not_found"
}

所以要么我做错了什么,要么错误信息有误,还是其他什么?

【问题讨论】:

  • 您能否提供更多信息?
  • 我使用 gtm-oauth2 在 iOS 应用程序中成功进行身份验证,我将范围设置为“flattr”。然后当我尝试上面的请求时,它失败了。当我在浏览器中使用相同的自动提交 URL 时,它可以正常工作并重定向到现有的东西。

标签: flattr


【解决方案1】:

您的 url 编码可能有问题。为此,您需要先对自动提交 URL 进行 URL 编码。

http://blog.flattr.net/2011/10/api-v2-beta-out-whats-changed/ 变为 http%3A%2F%2Fblog.flattr.net%2F2011%2F10%2Fapi-v2-beta-out-whats-changed%2F

如果您想将其作为常规 POST 请求发送,则需要对整个自动提交 URL 进行 URL 编码。

http://flattr.com/submit/auto?url=http%3A%2F%2Fblog.flattr.net%2F2011%2F10%2Fapi-v2-beta-out-whats-changed%2F&user_id=flattr 变为 http%3A%2F%2Fflattr.com%2Fsubmit%2Fauto%3Furl%3Dhttp%253A%252F%252Fblog.flattr.net%252F2011%252F10%252Fapi-v2-beta-out-whats-changed%252F%26user_id%3Dflattr

如果您要使用 JSON 发送它,则不需要对 flattr 自动提交 URL 进行 URL 编码。相反,您确实喜欢下面的示例。

{"url":"http://flattr.com/submit/auto?url=http%3A%2F%2Fblog.flattr.net%2F2011%2F10%2Fapi-v2-beta-out-whats-changed%2F&user_id=flattr"}

这意味着,如果您执行常规 POST 请求,并且如果您将数据作为 JSON URL 编码仅发送一次,那么部分 URL 将被 URL 编码两次。当您使用 JSON 正文进行 POST 请求时,您需要将 Content-Type 设置为 application/json 以使其工作。

【讨论】:

  • 您的示例 URL 仍然抛出错误:{ "error_description" : "The request is invalid", "error_uri" : "http:\/\/developers.flattr.net\/api", "错误”:“invalid_request”}
  • 我试过你上面显示的 URL,以及带有 &user= 参数的自动提交 URL
  • 啊,我发现我忘记在请求中添加 user_id 了。明天我会考虑添加更好的错误描述。
  • 我发现我错过了描述中的一件事。查看 JSON 正文示例。
【解决方案2】:

我忘记为请求设置 Content-type 标头。它需要说“application/json”。

【讨论】:

    猜你喜欢
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    相关资源
    最近更新 更多