首页 > 解决方案 > 无法将图像上传到 Imgur 以获得 400 禁止响应

问题描述

我无法将图像上传到我的 imgur 帐户以获取 400 禁止响应。

我曾多次尝试将图片上传到我在中国的 Imgur 帐户,但总是以 400 响应失败。喜欢,

{
    "data": {
        "error": "These actions are forbidden."
    },
    "success": false,
    "status": 400
}

这是我的步骤,

  1. 注册应用程序

(1) 在浏览器中请求https://api.imgur.com/oauth2/addclient,然后添加回调重定向URL。

(2) 获取客户端ID和秘密。

  1. 进行授权并获取令牌

在“ https://api.imgur.com/oauth2 ”中,它显示了三个response_type,如code、token和pin。但是我可以而且只能使用token类型直接获取访问token和刷新token。如果我使用code或pin类型进行授权,然后通过邮递员请求token,会出现400错误,“这些操作被禁止。” 所以这是我使用带有令牌的 response_type 请求访问代码的内容。

(1) 在网络浏览器中输入以下 URL 并允许应用程序连接到我的帐户。 https://api.imgur.com/oauth2/authorize?response_type=token&client_id=xxxx&state=state

(2)然后在重定向URL中获取访问令牌和刷新令牌, https://app.getpostman.com/oauth2/callback?state=state #access_token=xxx&expires_in=315360000&token_type=bearer&refresh_token=xxx&account_username=xxx&account_id=xxx

  1. 上传图片

(1) 到目前为止,我可以简单地使用邮递员上传图片。

(2) postman like生成的相对curl命令。curl --request POST \ --url https://api.imgur.com/3/image \ --header '授权:承载 xxxx' \ --header '邮递员令牌:7edabb12-7f1f-4f30-9e9b-e87ad1cae0ee ' \ --header '缓存控制:无缓存' \ --header '内容类型:多部分/表单数据;边界=----WebKitFormBoundary7MA4YWxkTrZu0gW' \ --form image=@/xxx/xxx/IMG_3310.JPG

我尝试在中国或美国使用不同的 IP 地址在不同的机器上上传不同大小的图像,但失败了。我也不知道为什么我不能使用代码或密码来交换令牌。

标签: imgur

解决方案


也许你的图像太大了。

我一直在尝试在那里上传一个 12MB 的 GIF,但它总是返回 400。然后我尝试剪切它,然后上传另一个小于 5.7MB 的大小,它成功了。

我建议调查 imgur 支持和允许的内容领域,而不仅仅是身份验证和内容。


推荐阅读