Получить фотографии из твиттера в C #? - PullRequest
5 голосов
/ 08 октября 2011

Я пытаюсь реализовать функцию в приложении .Net WPF для автоматического отображения фотографий из twitpic, когда пользователи публикуют их в моем хэштеге.

Я использую библиотеку API Twitterizer2, все поступающие твитыиз моего поиска есть их ссылки как ссылки t.co (я думаю, что это из Twitter).Я не знаю, как разобрать эти ссылки, чтобы заставить изображения отправлять их пользователям.

Ответы [ 4 ]

2 голосов
/ 11 октября 2011

Вы можете положиться на данные о сущностях мультимедиа, которые возвращаются Twitter.

Вы можете увидеть пример и объяснение, которое я опубликовал некоторое время назад здесь: http://www.twitterizer.net/528/finding-urls-hashtags-and-mentions-using-entities/

Образец нене включайте его, но есть более новый класс TwitterMediaEntity, который предоставляет информацию об изображениях и видео.

0 голосов
/ 28 августа 2015

все прикрепленные медиа и аудио URL в любом твите будут в сущностях \ медиа, и медиа будут массивом элементов, которые прикрепляются к сообщению, если вы хотите получить путь к первому прикрепленному элементу, так как предположим, что ваши твиты сохранены в enumerableTwitts yourможет быть

foreach (dynamic t in enumerableTwitts)
            {
 dynamic media = t["entities"]["media"];
                        string media_url = media[0]["media_url"].ToString();
}

, вы должны использовать try-catch, потому что некоторые из твитов не имеют вложенных файлов

0 голосов
/ 31 октября 2012

Я использовал что-то вроде этого (с пакетом Twitterizer )

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 + "\" />";
    }
}
0 голосов
/ 08 октября 2011

Я не знаю, как работает API Twitterizer2, но я думаю, что вы могли бы решить вашу проблему двумя способами:

  1. Искать в Официальном API Twitter что-то, что поможет вам разобрать такие ссылки (посмотрите на Tweet Entities );
  2. Загрузите содержимое этого URL-адреса самостоятельно и проанализируйте его;

Для второго подхода я бы предложил что-то вроденижеприведенная функция (этот синтаксический анализ основан на первой картинке, которую я обнаружил в своих твитах подписчиков, поэтому работает только для изображений TwitPic ):

private static Uri GetPicture(string twitterUri)
{
    using (var webClient = new WebClient())
    {
        string html = webClient.DownloadString(twitterUri);
        int imgIndex = html.IndexOf("<img class=\"photo\" id=\"photo-display\"");
        int srcStartIndex = html.IndexOf("src", imgIndex) + 5;
        int srcEndIndex = html.IndexOf("\"", srcStartIndex);
        string imgSrc = html.Substring(srcStartIndex, srcEndIndex - srcStartIndex);
        return new Uri(imgSrc);
    }
}

Как вы могли себе представить,это:

Uri imgUri = GetPicture("http://t.co/RQu9hZn8"); // this is a real image
...