用C#从twitter上获取照片?
我试图在.NETWPF应用程序中实现一个功能,当用户将twitpic的照片发布到我的标签上时,自动显示这些照片用C#从twitter上获取照片?,c#,twitter,twitterizer,C#,Twitter,Twitterizer,我试图在.NETWPF应用程序中实现一个功能,当用户将twitpic的照片发布到我的标签上时,自动显示这些照片 我使用的是Twitterizer2API库,我搜索的所有推文都有t.co链接(我想这是来自Twitter的)。我不知道如何解析这些链接以获取图像并将其发送给用户。我不知道Twitterizer2 API是如何工作的,但我认为您可以通过两种方式解决问题: 在官方的Twitter API中搜索一些可以帮助你解析这些链接的东西(看看) 自己下载该URL的内容并对其进行解析 对于第二种方法,我
我使用的是Twitterizer2API库,我搜索的所有推文都有t.co链接(我想这是来自Twitter的)。我不知道如何解析这些链接以获取图像并将其发送给用户。我不知道Twitterizer2 API是如何工作的,但我认为您可以通过两种方式解决问题:
您可以依赖Twitter返回的媒体实体数据 您可以看到我不久前在这里发布的示例和解释:
示例中没有包含它,但是有一个更新的TwitterMediaEntity类,它提供了有关图像和视频的信息。我使用了类似的东西(与)
li.Text=tweet.Text;
foreach(tweet.Entities中的Twitterizer.Entities.TwitterEntity te)
{
if(te.GetType()==(typeof(Twitterizer.Entities.TwitterMediaEntity)))
{
var b=(Twitterizer.Entities.TwitterMediaEntity)te;
li.Text+=“”;
}
}
任何推文中的所有附加媒体和音频URL都将位于entities\media中
如果您想获得第一个附加项目的路径,那么媒体将是附加在帖子上的项目数组,假设您的tweets保存在enumerableTwitts中
你可能会
foreach (dynamic t in enumerableTwitts)
{
dynamic media = t["entities"]["media"];
string media_url = media[0]["media_url"].ToString();
}
您应该使用try-catch,因为某些推文没有附加文件这将起作用(对于twitpic),但请注意,您将对每个图像进行网络呼叫,这将需要时间和带宽来进行排序。如果不进行网络呼叫,您如何下载图像?我刚刚提出了一种从编码链接中提取它们的方法。他如何处理图像显示取决于他:)如果你计算下载图像数据的网络调用,那么你的代码将为每个图像执行2个网络调用。您所做的不是提取图像数据,而是提取图像的url,客户端必须再次调用该url才能下载该url。这就是我说的,你多打了一个网络电话。我发布了一个指向示例代码的链接,该代码将直接从twitter获取url。数据已经包含在结果中。感谢MediaEntity的更新,我没有意识到这已经是Twitterizer的一部分了!是否有完整源代码示例的最终解决方案?
Uri imgUri = GetPicture("http://t.co/RQu9hZn8"); // this is a real image
li.Text = tweet.text;
foreach(Twitterizer.Entities.TwitterEntity te in tweet.Entities)
{
if(te.GetType() == (typeof(Twitterizer.Entities.TwitterMediaEntity)))
{
var b = (Twitterizer.Entities.TwitterMediaEntity) te;
li.Text += "<img src=\"" + b.MediaUrl + "\" />";
}
}
foreach (dynamic t in enumerableTwitts)
{
dynamic media = t["entities"]["media"];
string media_url = media[0]["media_url"].ToString();
}