

目的：  
Twitter V2で1週間以内の指定した日時以降に自分のツイートについた引用リツイート全てと、引用元のツイートのIDを取得したい。  
引用元がどのツイートかは指定しない。

Google Apps Scriptを使っています。  
Twitter v2のsearch APIを使っています。  
エンドポイントのURLは以下のように設定しました。

[code]

    const username = "xxxxx";
    const endpoint = "https://api.twitter.com/2/tweets/search/recent?query="+ encodeURIComponent('url:"https://twitter.com/"' + username + "/ is:quote");
    
[/code]

出力

[code]

    { data: 
       [ 
         (省略)
         { edit_history_tweet_ids: [Object],
           id: '(引用リツイートのツイートID)',
           text: '(引用リツイートの本文)' } ],
      meta: 
       { newest_id: 'xxxxx',
         oldest_id: 'xxxxx',
         result_count: 10,
         next_token: 'xxxxx' } }
    
[/code]

次のことがしたいです。  
・引用リツイートそのものだけでなく、元のツイートのIDを取得したい  
・10件のみでなく全てを取得したい  
・指定した日時以降の引用リツイートを取得したい

どのようにパラメーターをセットしたらいいでしょうか。  
調べても分からないため、よろしくお願いいたします。


CC BY-SA 4.0
2023-01-26T13:58:24.747
93575
2023-01-28T16:27:43.370
51403
question
google-apps-script twitter
Twitter v2 引用リツイートを検索


あるツイートで引用されているツイートの ID を取得するには、クエリパラメータ―に expansion を指定すれば良いです:
<https://developer.twitter.com/en/docs/twitter-api/expansions>

具体的には `expansions=referenced_tweets.id` を指定すれば良いです。以下リクエストとレスポンスの例です。

[code]

    % curl -s 'https://api.twitter.com/2/tweets/search/recent?query=url%3A%22https%3A%2F%2Ftwitter.com%2Fnekketsuuu%2F%22+is%3Aquote+-is%3Aretweet&expansions=referenced_tweets.id' -H 'Authorization: Bearer 省略' | jq
    {
      "data": [
        {
          "id": "1619368289658093570",
          "text": "テスト2 https://t.co/eO9lOSxD53",
          "referenced_tweets": [
            {
              "type": "quoted",
              "id": "1619368244422533122"
            }
          ],
          "edit_history_tweet_ids": [
            "1619368289658093570"
          ]
        }
      ],
      "includes": {
        "tweets": [
          {
            "id": "1619368244422533122",
            "text": "テスト",
            "edit_history_tweet_ids": [
              "1619368244422533122"
            ]
          }
        ]
      },
      "meta": {
        "newest_id": "1619368289658093570",
        "oldest_id": "1619368289658093570",
        "result_count": 1
      }
    }
    
[/code]

全件取得するにはクライアント側でページネーション処理を行ってください:
<https://developer.twitter.com/en/docs/twitter-api/pagination>

ある日付より前のツイートを取得するには `until:` が使えます:
<https://developer.twitter.com/en/docs/twitter-
api/v1/tweets/search/guides/standard-operators>


CC BY-SA 4.0
2023-01-28T16:27:43.370
93597
2023-01-28T16:27:43.370
19110
93575
answer