繁体   English   中英

将图片上传到Twitter

[英]Upload Image to Twitter

我正在尝试使用Twitter API版本1.1和update_with_media.json方法将图像上传到Twitter。

https://dev.twitter.com/docs/api/1.1/post/statuses/update_with_media

这是我到目前为止的代码,尽管有很多变种,但我无法成功上传。

    public TwitterResponse UpdateStatus(string message, String fileName, String contentType, byte[] image)
    {
        RestClient client = new RestClient
        {
            Authority = TwitterConstants.Authority,
            VersionPath = TwitterConstants.Version

        };

        message = HttpUtility.HtmlEncode(message);

        client.AddHeader("content-type", "multipart/form-data");

        client.AddField("status", message);
        client.AddField("media[]", Convert.ToBase64String(image) + ";filename=" + fileName + ";type=" + contentType);

        RestRequest request = new RestRequest
        {
            Credentials = this.Credentials,
            Path = "statuses/update_with_media.json",
            Method = Hammock.Web.WebMethod.Post

        };

        return new TwitterResponse(client.Request(request));
    }

我正在使用Hammock执行这些请求。

为了排除其他可能的问题,我可以使用update.json方法成功将状态更新发布到Twitter。

我也尝试过使用client.AddFile方法和Fiddler,看起来一切就绪。 但是我一直回来的错误信息是

{"errors":[{"code":195,"message":"Missing or invalid url parameter"}]}

您可以使用Nuget上可用的TweeterSharp插件,而不是使用本机Twitter API。

我在本文中写了带有说明的示例,并使用C#在Twitter上发布了带有图像的消息。

特别是这是代码片段

using (var stream = new FileStream(imagePath, FileMode.Open))
            {
                var result = service.SendTweetWithMedia(new SendTweetWithMediaOptions
                {
                    Status = message,
                    Images = new Dictionary<string, Stream> { { "john", stream } }
                });
                lblResult.Text = result.Text.ToString();
            }

完整的演示可随文章下载,可随时下载。

谢谢

我从未使用过Hammock或c#,但我知道我们遇到了类似的问题...

我们的核心twitter库适用于所有内容,但无法上传图片。 事实证明,我们的twitter库依赖的OAuth库在发布文件时未正确计算签名。 我们必须更新我们的oauth才能使其正常工作。

在我们的案例中,一旦我替换了更新的OAuth,我们尝试使用的确切代码就可以正常工作。

如果您使用的是较旧的OAuth版本,建议您寻找较新的版本,然后整理一个快速脚本来尝试使用。

关于该错误消息,它可能更多是红色鲱鱼,而不是有效消息-尤其是因为它甚至没有在错误页面上列出:

https://dev.twitter.com/docs/error-codes-responses

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM