在创建相册之前,我创建了一个Imgur帐户并获得了我的客户端ID和密钥。我的目标是在将它集成到我的应用程序中之前在测试环境中编写。
以下是我到目前为止使用的代码的最终版本:
string base64String;
string message;
string album = "abcxyz";
using (Image image = Image.FromFile("c:\path_to\image.jpg"))
{
using (MemoryStream m = new MemoryStream())
{
image.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();
base64String = Convert.ToBase64String(imageBytes);
}
}
using (var client = new WebClient())
{
string clientID = "supersecret";
client.Headers.Add("Authorization", $"Client-ID {clientID}");
System.Collections.Specialized.NameValueCollection valueCollection = new System.Collections.Specialized.NameValueCollection();
valueCollection["image"] = base64String;
valueCollection["type"] = "base64";
valueCollection["album"] = album;
try
{
byte[] response = client.UploadValues("https://api.imgur.com/3/upload", "POST", valueCollection);
message = Encoding.ASCII.GetString(response);
}
catch (Exception ex)
{
message = ex.Message;
}
}
当我运行代码时,我收到消息,我显然不拥有我正在尝试的专辑。具体说来:
error=You are not the owner of album '<album hash>', which means you can't
add images to it. For anonymous albums, use the album deletehash.
我曾认为,由于我在使用我的帐户登录时创建了相册,它应该可以工作 - 现在我错过了一些东西。对此的任何额外关注将不胜感激,谢谢。
安 迪
这是一个简单的两步过程。 但是Imgur API Docs让我很难。
这是在 JS 中:所以你应该
⠀ 1. 确保您有这些标头和此正文,以及正确的 + 支持的类型(正在发送的文件类型;文件、base64 或 URL( 对我来说 base64
var myHeaders = new Headers();
var formdata = new FormData();
myHeaders.append(
"Authorization",
"Bearer 8efbea9b750ad38aeb2e8384a378456363ddddd" //your access-token
);
formdata.append("image", res);
formdata.append("type", "base64");
formdata.append("name", any_string_you_want);
formdata.append("album", "2ddl3LUD");
var requestOptions = {
method: "POST",
headers: myHeaders,
body: formdata,
};
- 确保不包含任何其他额外的标头或元数据,例如Client-ID:您的客户端ID。
另外:如果您没有访问令牌,请返回Imgur Docs生成一个,如果您没有专辑ID,请Google如何获取它。