#javascript #api #twitter #oembed
#javascript #API #Twitter #oembed
Вопрос:
Я пытаюсь вставлять твиты на основе поисковых запросов пользователей.
Я могу получать твиты из поискового API Twitter, но тогда ни один из URL-адресов, которые я получаю в ответе twitter, не совместим с встроенным API, поэтому я не могу отображать твиты, которые я получаю.
Я отправляю GET
на https://api.twitter.com/1.1/search/tweets.json?q=${VARIABLE}
, и вот все URL-адреса, которые я получаю обратно:
display_url: "twitter.com/i/web/status/1…"
expanded_url: "https://twitter.com/i/web/status/1328842765115920384"
url: [shortened URL that Stack Overflow will not let me print]
Однако для встроенного API URL-адрес должен быть в формате https://twitter.com/[username]/status/[id]
.
Кто-нибудь может помочь относительно того, как я могу использовать api поиска, а затем отображать эти твиты на экране?
Ответ №1:
Здесь важно то, что вы извлекли усеченные твиты, и вам нужен полный твит, чтобы иметь правильный URL.
Прежде всего, добавьте ?tweet_mode=extended
к вызову API. Этот параметр необходим в API версии v1.1 для получения твитов длиной более 140 символов.
GET https://api.twitter.com/1.1/search/tweets.json?q=${VARIABLE}amp;tweet_mode=extended
Как только вы это сделаете, у вас будет полный объект Tweet. Однако он не будет содержать ссылку на себя — единственная причина, по которой у вас была ссылка раньше, это то, что вы извлекали усеченный твит, поэтому API вернул ссылку на полный твит.
Способ создания исходного URL-адреса твита — объединить идентификатор твита с URL-адресом статуса Twitter. Не имеет значения, какое имя пользователя вы вводите, потому что Twitter разрешит это из идентификатора.
Итак, в этом случае у вас есть идентификатор твита 1328842765115920384
, и вы можете добавить его к https://twitter.com/twitter/status/
to give https://twitter.com/twitter/status/1328842765115920384
, который будет разрешен https://twitter.com/Ashton5SOS/status/1328842765115920384
автоматически.
Передайте этот URL-адрес в publish.twitter.com Встроенная конечная точка.
В этом сообщении разработчика есть больше информации.