c# - 使用 Imgur API 3 上传图像报告我不是相册的所有者

标签 c# image-uploading imgur

我在创建相册之前创建了一个 Imgur 帐户并获取了我的客户端 ID 和 key 。我的目标是在将其集成到我的应用程序之前在测试环境中编写。

以下是我到目前为止使用的代码的最终版本:

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 文档让我很难理解。

这是在 JS 中: 所以你应该

⠀ 1. make sure you have these headers and this body and a correct + supported type (The type of the file that's being sent; file, base64 or URL) for me 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,
    };
  1. make sure you don't include any other extra headers or meta-data like, Client-ID : your-client-id.

额外:如果您没有访问 token ,请返回 imgur 文档生成一个,如果您没有相册 ID,请谷歌搜索如何获取它。

关于c# - 使用 Imgur API 3 上传图像报告我不是相册的所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44194434/

相关文章:

php - 在数据库中插入带有 2 个图像字段的表单数据

php - 如何在网站上实现 imgur api(图像主机)?

java - 上传到imgur java

c# - IEnumerable<T> 和 Take(x) 问题?

c# - MVVM Light EventToCommand无法拦截UserControl事件的问题

c# - Silverlight 5 VS 2012 单元测试

c# - 具有不同性能的两个项目中的相同方法

yii2 - 在 Yii2 中从上传的图像创建缩略图

javascript - 如何在 XMLHttpRequest 中显示进度

使用 POST URL 的 PHP 图像显示