2014-03-26 140 views
0

我正尝试使用Twitter API版本1.1和update_with_media.json方法将图像上传到Twitter。将图像上传到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"}]} 

回答

1

除了使用原生的Twitter API,你可以使用Nuget提供的TweeterSharp插件。

样品与描述在这篇文章我Post message with image on twitter using C#

特别写了这是代码片段

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(); 
      } 

完整的演示附有文章下载,随意下载。

谢谢

+0

TweetSharp是我在项目结束时使用的,但它并没有没有困难。尽管现在是1.5年前。 –

0

我从来没有使用吊床或或C#,但我知道,我们有一个类似的问题...

我们的核心叽叽喳喳库工作过的一切,但我们无法让图片上传工作。事实证明,我们的twitter lib依赖的OAuth库在发布文件时没有正确计算签名。我们必须更新我们的oauth才能使其工作。

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

如果您使用的是旧版本的OAuth,我会建议您查找更新的版本,并将一个快速脚本放在一起以便尝试。

关于该错误消息,它可能更多的是红鲱鱼不是一个有效的信息 - 尤其是因为它甚至没有自己的错误页面上列出:

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