Длинные URL из каналов Twitter без дополнительных вызовов API / HTTP-запросов - PullRequest
1 голос
/ 25 октября 2011

Есть ли какой-нибудь встроенный способ получить длинный расширенный URL из твиттер-RSS-канала? Прямо сейчас в фиде перечислены все URL-адреса как http://t.co.... Я хотел бы сделать то, что делает дисплей Twitter и отображать длинные URL; Я также хотел бы избежать необходимости выполнять вызов API или HTTP-запрос для каждого URL в канале. В идеале я бы также хотел избегать прямого использования API-интерфейса Twitter, но если это единственный способ, пусть будет так.

Разъяснение

Мне не интересно делать отдельный запрос для каждой ссылки на t.co или вызывать API Twitter. Я надеялся, что был единственный запрос, который я мог бы сделать, который бы включал длинные URL-адреса в метаданные (или даже предоставлял твит в полном развернутом виде, как он появляется в Twitter). Оказывается, способ сделать это - запросить версию JSON с search.twitter.com, а не из RSS-канала, и добавить include_entities=True.

Перепишите, надеюсь, это прояснит ситуацию

Я использую http://search.twitter.com/search.rss, чтобы получать твиты, соответствующие поисковому запросу. Лента содержит только сокращенные URL-адреса t.co. Есть ли способ изменить мой запрос, чтобы вместо твитов содержались расширенные URL?

Цель состоит в том, чтобы выполнить всего один запрос , вместо того, чтобы просматривать твиты и анализировать каждый URL-адрес t.co отдельно (особенно с учетом того, что для канала с несколькими десятками т. co urls, что означает несколько десятков отдельных запросов). При необходимости я могу использовать API-интерфейс Twitter для выполнения поиска вместо RSS, но для моих целей лучше использовать канал.

Ответы [ 2 ]

3 голосов
/ 25 октября 2011

Нет, Twitter не предлагает сущность urls в своих ответах RSS, и опция include_entities не работает.Вам нужно будет использовать другой формат ответа, например, JSON (с которым вы можете использовать опцию include_entities, которая включает в себя объект entities['urls'][n]['expanded_url']), или «укоротить» URL-адреса самостоятельно после факта.

0 голосов
/ 26 октября 2011

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

http://expandurl.appspot.com/

Прототип вызова API: http://expandurl.appspot.com/expand?url=

http://longurl.org

Прототип вызова API: http://api.longurl.org/v2/expand?url=

http://unshort.me/

Прототип вызова API: http://api.unshort.me/?r=http://

Конечно, вы также можете использовать API Twitter для этого, как упомянул Джордан, включая &include_entities=1 или true в качестве параметра для некоторых вызовов.

также попытайтесь свернуть URL и посмотреть, какую информацию вы можете получить от этого. Я думаю, что это в значительной степени исчерпывает возможности.

...