Есть ли какая-нибудь работа по извлечению разговоров в Твиттере с использованием последней версии Twitter REST API v1.1?
Я работаю над проектом, в котором нужно найти разговор пользователя Twitter. Например, я хочу получить все ответы на этот твит BBC World Service. Используя API REST v1.1, я могу получить временную шкалу (твит, ретвит) пользователя Twitter. Но я не нашел никакой документации / работы по извлечению ответов на конкретный твит. Есть ли какая-нибудь работа по получению ответов на конкретный твит вообще?
1 ответ
Для получения ответов на определенный твит нет вызова API. Вы можете, однако, обмануть!
Используя API поиска, вы можете создать поисковый запрос:
- В ответ на
@bbcworldservice
, - Произошло после того, как твит был опубликован.
- По желанию, до определенной даты / времени.
Так что, в этом случае, что-то вроде
https://api.twitter.com/1.1/search/tweets.json?
q=%23bbcworldservice&
since_id=489366839953489920&
count=100
Вы получите список твитов (до 100). Затем вам нужно будет искать их in_reply_to_status_id_str
и посмотрите, соответствует ли это статусу, который вы ищете.
TwitterAPI v2 позволяет извлекать всю цепочку беседы, используя в поиске только идентификатор беседы. (В v1.1 вам нужно было написать собственный код для его сборки)
Ответы на конкретный твит, а также ответы на эти ответы включаются в беседу, происходящую из одного исходного твита. Независимо от того, сколько цепочек ответов получится, все они будут иметь общий идентификатор беседы с исходным твитом, который вызвал диалог. Используя Twitter API v2, у вас есть возможность извлекать и реконструировать всю цепочку беседы, чтобы вы могли лучше понимать, о чем идет речь, и как развиваются разговоры и идеи.
Пример:
curl --request GET \
--url 'https://api.twitter.com/2/tweets?ids=1225917697675886593&tweet.fields=author_id,conversation_id,created_at,in_reply_to_user_id,referenced_tweets&expansions=author_id,in_reply_to_user_id,referenced_tweets.id&user.fields=name,username' \
--header 'Authorization: Bearer $BEARER_TOKEN'
Ответ будет как
{
"data": [
{
"id": "1225917697675886593",
"text": "@TwitterEng",
"created_at": "2020-02-07T23:02:10.000Z",
"author_id": "2244994945",
"in_reply_to_user_id": "6844292",
"conversation_id": "1225912275971657728",
"referenced_tweets": [
{
"type": "quoted",
"id": "1200517737669378053"
},
{
"type": "replied_to",
"id": "1225912275971657728"
}
]
}
],
"includes": {
"users": [
{
"username": "TwitterDev",
"name": "Twitter Dev",
"id": "2244994945"
},
{
"username": "TwitterEng",
"name": "Twitter Engineering",
"id": "6844292"
}
],
"tweets": [
{
"id": "1200517737669378053",
"text": "| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|\n don't push \n to prod on \n Fridays \n|___________| \n(\\__/) ||\n(•ㅅ•) ||\n/ づ",
"created_at": "2019-11-29T20:51:47.000Z",
"author_id": "2244994945",
"conversation_id": "1200517737669378053"
},
{
"id": "1225912275971657728",
"text": "Note to self: Don't deploy on Fridays",
"created_at": "2020-02-07T22:40:37.000Z",
"author_id": "6844292",
"conversation_id": "1225912275971657728"
}
]
}
}
Для получения дополнительной информации обратитесь к Twitter API Conversation