我现在试图将图片推特几个小时,我开始怀疑它是否只是在使用Mono?
我使用的代码是:
var_dump($collection->getFirstItem()->getData());
如果网上的示例代码和我的所有代码非常相似,我已经阅读过几十个。我错过了一些明显的东西吗?
没有上传图片,推文为空。
修改 正如Yort所指出的那样,API调用已被弃用,而Tweetsharp并不支持新的方式。所以我转而使用TweetMoaSharp。我用TweetMoaSharp解决它的方法是:
public void SendMediaTweet(string Reply, string ImagePath)
{
if (File.Exists(ImagePath))
{
using (var stream = new FileStream(ImagePath, FileMode.Open))
{
Dictionary<string, Stream> images = new Dictionary<string, Stream> { { ImagePath, stream } };
var tweet = Service.SendTweetWithMedia(new SendTweetWithMediaOptions
{
Status = Reply,
Images = images
});
}
}
}
答案 0 :(得分:1)
Twitter的图片有很多限制。检查Twitter.com上的API文档。图像必须低于某个字节(文件)大小,并且每个维度的像素数少于某个像素数。此外,仅允许某些文件格式。
在调用之后还要检查TwitterService对象的Response属性,看看是否提供了错误的更多详细信息。
最后,该Api方法现已弃用。您应该使用uploadmedia,然后使用带有媒体ID列表的sendtweet方法。原始的tweetsharp(现已放弃)并不支持这个,但TweetMoaSharp确实如此。
答案 1 :(得分:0)
请转到https://apps.twitter.com/,登录到您的帐户,然后转到Keys and Access Tokens
标签,确保您已创建了api密钥,令牌等。
请确保您正确创建了tweeter服务→
TwitterService _ts = new TwitterService(consumerKey, consumerSecret, token, tokenSecret);
那么你可以毫无问题地使用→
var bytes = File.ReadAllBytes(@"c:/tmp/a.bmp");
var d = new Dictionary<string, Stream> { { "x", new MemoryStream(bytes) } };
_ts.SendTweetWithMedia(new SendTweetWithMediaOptions { Images = d });