Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用最新的TwitterRESTAPIv1.1获取twitter对话有什么解决办法吗_Api_Rest_Twitter - Fatal编程技术网

使用最新的TwitterRESTAPIv1.1获取twitter对话有什么解决办法吗

使用最新的TwitterRESTAPIv1.1获取twitter对话有什么解决办法吗,api,rest,twitter,Api,Rest,Twitter,我正在做一个项目,需要检索twitter用户的对话。例如,我想得到这条推特的所有回复。使用我可以获得twitter用户的时间线(tweet,re-tweet)。但是我没有找到任何关于获取特定tweet回复的文档/工作。在获取特定tweet的回复方面有什么解决办法吗?没有API调用来获取特定tweet的回复。然而,你可以作弊 使用,您可以构造一个搜索查询,该查询是: 回复@bbcworldservice 在推特发布后发生 (可选)在特定日期/时间之前 所以,在这种情况下 https://api

我正在做一个项目,需要检索twitter用户的对话。例如,我想得到这条推特的所有回复。使用我可以获得twitter用户的时间线(tweet,re-tweet)。但是我没有找到任何关于获取特定tweet回复的文档/工作。在获取特定tweet的回复方面有什么解决办法吗?

没有API调用来获取特定tweet的回复。然而,你可以作弊

使用,您可以构造一个搜索查询,该查询是:

  • 回复
    @bbcworldservice
  • 在推特发布后发生
  • (可选)在特定日期/时间之前
所以,在这种情况下

https://api.twitter.com/1.1/search/tweets.json?
    q=%23bbcworldservice&
    since_id=489366839953489920&
    count=100

您将获得一个tweet列表(最多100条)。然后,您需要在“回复”至“状态”\u id\u str中搜索
,查看它是否与您要查找的状态匹配。

TwitterAPI v2允许您仅使用搜索中的对话id检索整个对话线程。(在v1.1中,您必须编写自定义代码来构建它)

对给定Tweet的回复以及对这些回复的回复都包含在源于单个原始Tweet的对话中。无论结果有多少回复线程,它们都将与引发对话的原始Tweet共享一个公共对话id。使用twitterapiv2,您可以检索和重建整个对话线程,以便更好地理解所说的内容,以及对话和想法是如何演变的

例如:

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

,这真的很可靠,比我能想到的任何东西都好。截至2017年,这种方法的问题是twitter中的对话可能包含未提及推文(即根推文)实际创建者的推文。在这种情况下,
q=%23user
方法只会返回会话中提到
@user
的tweet,这可能会在向用户显示时在会话中产生潜在的间隙。但是,另一方面,这仍然是获取推文回复的唯一方法。此解决方案获取过去7天的消息。有人知道,鉴于此推文有数百条回复,为什么上述请求只返回两条推文吗@这可能是因为api只检索了上周的推文
recent search endpoint允许您以编程方式访问上周发布的经过过滤的公共推文,并可通过标准和学术研究产品跟踪获得。