我一直在制作一个反应应用程序,最近每当我尝试从 imgur 访问图像时
this.setState({
imgUrl: `https://i.imgur.com/${this.props.image.id}b.png`,
imgBigUrl: `https://i.imgur.com/${this.props.image.id}l.png`
});
Run Code Online (Sandbox Code Playgroud)
它被渲染成这样
<img src={this.state.imgUrl}/>
Run Code Online (Sandbox Code Playgroud)
但是我一直被 403 禁止,但是当我使用邮递员或在浏览器中访问它时,它很好。我还通过传入像这样的专辑网址来访问 API
https://imgur.com/gallery/zrUFj
并从那里获取所有图像以显示在应用程序中(我收到 403 错误)
我不确定我可能做错了什么,我也尝试为 API 授权获取新的客户端 ID,但仍然没有用。有人有什么建议吗?
需要你的帮助...感谢Greenshot一个missclick足以在线发布图片到Imgur.(我确实......现在我想删除它)图片已使用匿名模式发布.
因为我没有手动发布它我没有删除链接,但我有deleteHash(15个alphanum-character).
我知道有一个要求删除图片的公式.但我想自己删除它.
在插件历史记录中,我找到了一个删除按钮,告诉我图片已从Imgur中删除,但图片仍在那里.
我试过这个:http://imgur.com/delete/ABCDEFghi01abcd, 但它告诉我"这不是一个有效的图片链接!继续,离开这里!"
我试过这个:
<form action="https://api.imgur.com/3/image/ABCDEFghi01abcd" method="DELETE
<p><input type="submit" value="OK"></p>
</form>
Run Code Online (Sandbox Code Playgroud)
但我得到了这个:
{"data":{"error":"Authentication required","request":"\/3\/image\/ABCDEFghi01abcd","method":"GET"},"success":false,"status":401}
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,我们如何发送DELETE方法?它似乎被忽略并发送了GET代替......)
也许Greenshot给出的deleteHash代码错了?
任何的想法 ?
我在控制台中得到这个:
Failed to load https://api.imgur.com/3/image: The 'Access-Control-Allow-Origin' header contains the invalid value ''. Origin 'https://example.org' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
var formData = new FormData();
formData.append('image', $('#imgur-api-upload')[0].files[0]);
formData.append('type', 'file');
formData.append('name', $('#imgur-api-upload')[0].files[0].name.replace('.jpg', ''));
// request
$.ajax({
async: true,
crossDomain: true,
url: 'https://api.imgur.com/3/image',
method: 'POST',
headers: {
'Authorization': 'Bearer ' + imgur_access_token
},
processData: false,
contentType: false,
mimeType: 'multipart/form-data',
data: formData
})
.done(function(dataResponse) {
console.log(dataResponse);
if (dataResponse.hasOwnProperty('status') && dataResponse.hasOwnProperty('success')) {
if (dataResponse['success'] == true && dataResponse['status'] == 200) {
$('#episode_image').val(dataResponse['data']['link']);
} …Run Code Online (Sandbox Code Playgroud) 我试图通过C#通过Imgur Version 3 API匿名获取图像数据(如图像大小).他们的文件陈述
API要求每个客户端使用OAuth 2身份验证.这意味着您必须注册您的应用程序,并在您想以用户身份登录时生成access_code.
对于公共只读和匿名资源,例如获取图像信息,查找用户评论等,您只需在请求中发送带有client_id的授权标头.如果您想要匿名上传图像(图像不附加到帐户),或者您想要创建匿名相册,这也适用.这让我们知道哪个应用程序正在访问API.
授权:Client-ID YOUR_CLIENT_ID
所以我将Client-ID作为标题添加到我的HttpWebRequest中.这是我下面的代码.
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://api.imgur.com/3/image/id/8ABRUYt");
webRequest.Headers.Add("Authorization", "Client-ID XXXXX");
Stream response = webRequest.GetResponse().GetResponseStream();
StreamReader reader = new StreamReader(response);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
response.Close();
Run Code Online (Sandbox Code Playgroud)
我收到404错误,但该图像显然存在 - > http://imgur.com/8ABRUYt (银河系图片).我做错了吗?
我正在通过 Imgur API ( https://apidocs.imgur.com/ ) 上传图像,但我收到“请求过多”(err 429),即使之前的请求返回“X-Ratelimit-Userremaining=1216”。我的理解是,我应该能够在达到速率限制之前执行 1216 POST。
编辑:
第一个请求头(成功)
X-Ratelimit-Userlimit ,Value : [2000]
X-Post-Rate-Limit-Reset ,Value : [1099]
X-Ratelimit-Clientreset ,Value : [11017]
X-Ratelimit-Userreset ,Value : [3600]
X-Ratelimit-Userremaining ,Value : [1216]
X-Post-Rate-Limit-Remaining ,Value : [1244]
X-Ratelimit-Clientlimit ,Value : [12500]
X-Post-Rate-Limit-Limit ,Value : [1250]
X-Ratelimit-Clientremaining ,Value : [12248]
Content-Type ,Value : [application/json]
Run Code Online (Sandbox Code Playgroud)
第二个请求标头(失败,达到速率限制):
X-Ratelimit-Userlimit ,Value : [2000]
X-Ratelimit-Clientreset ,Value : [10204]
X-Ratelimit-Userreset ,Value : [3600]
X-Ratelimit-Userremaining ,Value : [0]
X-Ratelimit-Clientlimit ,Value : [12500]
X-Ratelimit-Clientremaining ,Value : [12035]
Content-Type ,Value : …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 html 表单和 imgur api(react) 上传图像。
我在注册 api 时选择了带有回调 URL 的 OAuth 2 授权。
问题是 api 无法处理错误 429(有时是 net::ERR_HTTP2_PROTOCOL_ERROR)。
这是代码
const imageUpload = (e) => {
console.log("called");
var fileIn = e.target;
var file = fileIn.files[0];
if (file && file.size < 5e6) {
const formData = new FormData();
formData.append("image", file);
fetch("https://api.imgur.com/3/image", {
method: "POST",
headers: {
Authorization: "Client-ID //my client Id",
Accept: "application/json",
},
body: formData,
})
.then((response) => response.json())
.then((response) => {
e.preventDefault();
console.log(response);
console.log(response.data.link);
url_in = response.data.link;
});
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Javascript上传png到imgur.我直接使用了Imgur API 示例中的代码,但我不认为我正在传递png文件,因为我收到一条错误消息file.type is undefined.我认为该文件没问题,因为我尝试了几个不同的png.我的代码如下:
<html>
<head>
<script type="text/javascript">
function upload(file) {
// file is from a <input> tag or from Drag'n Drop
// Is the file an image?
if (!file || !file.type.match(/image.*/)) return;
// It is!
// Let's build a FormData object
var fd = new FormData();
fd.append("image", file); // Append the file
fd.append("key", "mykey"); // Get your own key: http://api.imgur.com/
// Create the XHR (Cross-Domain XHR FTW!!!)
var xhr …Run Code Online (Sandbox Code Playgroud) 不久前,我创建了一个python函数,它接受了一个图像的URL并将其传递给Imgur的API v2.由于我已被告知v2 API将被弃用,因此我尝试使用API v3.
正如他们在Imgur API文档中所说:
如果您想要匿名上传图片(没有将图片绑定到帐户),[发送]带有client_id的授权标头以及您的请求[...]也可以使用.这让我们知道哪个应用程序正在访问API.**
授权:Client-ID YOURCLIENTID
我不清楚(特别是他们提出的斜体)他们是否意味着标题应该是{'Authorization': 'Client-ID ' + clientID},或者{'Authorization: Client-ID ': clientID},或者{'Authorization:', 'Client-ID ' + clientID}其他变化......
无论哪种方式,我都试过,这就是我得到的(使用Python 2.7.3):
def sideLoad(imgURL):
img = urllib.quote_plus(imgURL)
req = urllib2.Request('https://api.imgur.com/3/image',
urllib.urlencode([('image', img),
('key', clientSecret)]))
req.add_header('Authorization', 'Client-ID ' + clientID)
response = urllib2.urlopen(req)
return response.geturl()
Run Code Online (Sandbox Code Playgroud)
在我看来,这就像Imgur要我做的一切:我有正确的端点,将数据传递给urllib2.Request使它成为一个POST请求,根据Python文档,我传递的图像参数与表格 - 编码的URL,我也尝试将它作为POST参数给我的客户端秘密,因为我收到一个错误,说我需要一个ID(即使没有提到我需要在相关文档中的任何地方使用我的客户端秘密).我添加了Authorization标头,它似乎是正确的形式,所以...为什么我收到错误400:错误的请求?
附带问题:如果我能看到Imgur返回的实际错误,我可能自己调试它,但由于它返回错误的HTTP状态,Python会死掉并给我一个令人作呕的堆栈跟踪.有什么方法可以让Python停止抱怨并给我错误消息JSON,我知道Imgur返回?
我在 imgur 上有一张图片。该图像显示在除本地主机之外的任何网站上。
可能是什么问题?
<img class="cover" src="https://i.stack.imgur.com/wqYLI.jpg" alt="">
Run Code Online (Sandbox Code Playgroud)
错误:GET https://i.stack.imgur.com/wqYLI.jpg 403(禁止)