C# 如何上传到imgur用户';s账户

C# 如何上传到imgur用户';s账户,c#,oauth,imgur,C#,Oauth,Imgur,我可以使用如下api将匿名图像上传到imgur: public static void UploadImage() { Image image = GetImage(); string base64 = Util.ImageToBase64(image); using (WebClient client = new WebClient()) { client.Headers.Add("Authorization", "Client-ID " +

我可以使用如下api将匿名图像上传到imgur:

public static void UploadImage()
{
    Image image = GetImage();
    string base64 = Util.ImageToBase64(image);

    using (WebClient client = new WebClient())
    {
        client.Headers.Add("Authorization", "Client-ID " + clientID);

        NameValueCollection data = new NameValueCollection();
        data["image"] = base64;
        data["type"] = "base64";

        byte[] responsePayload = client.UploadValues("https://api.imgur.com/3/image/", "POST", data);
        string response = Encoding.ASCII.GetString(responsePayload);
    }
}
client.Headers.Add("Authorization", "BEARER " + accessToken);

它正在上传到一个完全随机的url。我找不到任何说明如何执行此操作的文档,但是否可以将图像上载到用户的帐户,以便在他们上载的图像中显示它?

我找到了答案。您不需要发送
“CLIENT-ID”
头,而需要发送
“BEARER”
头,以及使用imgur的接收令牌。这允许您将图像发布到用户帐户,而在此之前,我只提供客户端id,这允许我发布匿名图像。代码如下所示:

public static void UploadImage()
{
    Image image = GetImage();
    string base64 = Util.ImageToBase64(image);

    using (WebClient client = new WebClient())
    {
        client.Headers.Add("Authorization", "Client-ID " + clientID);

        NameValueCollection data = new NameValueCollection();
        data["image"] = base64;
        data["type"] = "base64";

        byte[] responsePayload = client.UploadValues("https://api.imgur.com/3/image/", "POST", data);
        string response = Encoding.ASCII.GetString(responsePayload);
    }
}
client.Headers.Add("Authorization", "BEARER " + accessToken);

为了补充伊凡·朱布的答案。。。我只是在用python上传到我的imgur帐户时被卡住了一分钟,直到我尝试将承载者更改为承载者

req.add_header("Authorization", "Bearer " + imgur_access_token)

如果从命令行使用curl

curl -X POST -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -F "image=@PATH_TO_YOUR_IMAGE_FILE" https://api.imgur.com/3/upload
更多关于