2017-01-22 12 views
0

Я получаю результаты от twitter search/tweets api. Проблема я пытаюсь воссоздать ссылку на оригинальный твит ... который, как правило, находится в форме:Как создать ссылку на исходный объект твита, используя twitter search api?

http://twitter.com/{user.screen_name}/status/{id}

Проблема в том, если что-то является Retweet то user.screen_name разрывает связь (404), потому что retweet указывает на идентификатор исходного твита, а не идентификатор твита, который является ретветом (если это имеет смысл) ... так что для ретвитов мне нужна ссылка http://twitter.com/{retweeted_user.screen_name}/status/{id}

Я не вижу флаг в ответ, который говорит мне, является ли объект ретвитом или нет, поскольку нет реального объекта ретветов.

Я удивлен, что twitter на самом деле не простой metadata.source_url или что-то легко доступное, а не мне, чтобы перестроить ссылку на твиттерную страницу твитов.

+0

Используйте 'https://twitter.com/statuses/ {id}', если вы не против перенаправления. –

+0

Ahh dang, спасибо! Я попробовал '/ status /' и сдался. Если вы сделаете это, я соглашусь. – chovy

ответ

0

Оказывается https://twitter.com/statuses/{id} работает отлично (спасибо @pii_ke)

Проблема была, что поиск API Твиттера возвращает как .id и .id_str и то, что я не понимал, что большие числа не разобрать хорошо в JavaScript.

Вы можете прочитать об этом здесь: https://dev.twitter.com/overview/api/twitter-ids-json-and-snowflake

... но только из того, что вы всегда должны использовать .id_str и сохранить эти идентификационные номера как строки.

(90071992547409921).toString() разобран как '90071992547409920' < - уведомление отсутствует 1 в конце стало 0?

Это была моя проблема в дополнение к не зная о http://twitter.com/statuses/<id_str>

В моем случае я использовал КОА приложение в Node.js на стороне сервера и который был запрашивая API Твиттера, который где-то пытался разобрать, что оригинальный .id как строка и потерял некоторые биты ... используя .id_str всюду исправил проблему.

1

Используйте https://twitter.com/statuses/{id_str}, если вы не против перенаправления.

+0

не работает для меня: '823817721204719600' Я получаю 404' https: // twitter.com/statuses/823817721204719600' здесь рабочая ссылка: 'https: // twitter.com/image_folder/status/797396021722480640' Я думаю потому что его ретвит, идентификатор, который я возвращаю из твиттера, недействителен. – chovy

+0

В идентификаторах есть некоторая разница: '' id ": 823823414267777000," id_str ":" 823823414267777024 ",' не знаю, для чего эти два идентификатора отличаются. docs говорят, что id_str - это просто строковая версия, но ее отсутствие 024 in .id – chovy

+0

Идентификаторы должны быть строками, поскольку javascript имеет проблему с большими числами как идентификаторы (см. твиттер: https://dev.twitter.com/overview/api/ twitter-ids-json-and-snowflake) – chovy

 Смежные вопросы

  • Нет связанных вопросов^_^