
Twitter API v2の使い方
Twitter API v2は下の表のようなことができる。
| 機能 | 説明 | 
|---|---|
| Tweet lookup | ツイートのID からツイートを検索する | 
| User lookup | 名前かIDからユーザーを検索する | 
| Recent search | 最新7日間のツイートをTwitterの機能により検索した結果を取得する | 
| Full-archive search | 2006年3月以降の完全なアーカイブからツイートを検索する 現在は「Academic Research」でのみ提供している。  | 
| User Tweet timeline | 特定のユーザーのタイムラインを取得する | 
| User mention timeline | 特定のユーザーへのメンション(「@ユーザー名」を含むツイート)を取得する | 
| Filtered stream | フィルターにマッチしたツイートをリアルタイムにストリーミングする | 
| Sampled stream | 全てのツイートのおよそ1%をリアルタイムでストリーミングする | 
| Hide replies | 特定のツイートに対するリプライの表示・非表示を切り替える | 
以前はツイート検索をしたかったためRecent search機能を使用した。

ここで、ツイート検索をする際に用いる検索オプション、得られるデータの詳細をまとめる。
公式から引っ張ってきただけ。
https://developer.twitter.com/en/docs/twitter-api/early-access
1. Recent searchの基本的な使い方
以前Pythonから使用したときのまとめ↓

APIにquery(検索ワード)とtweet_fields(取得する属性)を渡すと検索結果が返ってくる。
2. 検索ワード
query(検索ワード)に以下の要素を含めると対応したものが検索できる。
AND検索、OR検索などもできる。
| 検索ワード | 説明 | 例 | 
|---|---|---|
| keyword | 検索ワード 句読点、記号、区切り文字で分割される それらを含めて検索したい場合は全体をダブルクォーテーションで囲む  | 「岩石の巨兵」 | 
| emoji | 絵文字 | 「emoji」 | 
| exact phrase match | 正確な検索ワード 全体をダブルクォーテーションで囲む  | 「”聖なるバリア -ミラーフォース-“」 | 
| # | ハッシュタグ | 「#遊戯王」 | 
| @ | メンション | 「@YuGiOh_OCG_INFO」 | 
| from: | 特定のユーザーの投稿したツイート | 「from:YuGiOh_OCG_INFO」 | 
| to: | 特定のユーザーに対して投稿したツイート | 「to:YuGiOh_OCG_INFO」 | 
| url: | UPLの検索 短縮URLも元のURLも両方マッチする 句読点や特殊文字を含む場合は全体をダブルクォーテーションで囲む  | 「url:”https://www.yugioh-card.com/"」 | 
| retweets_of: | 特定のユーザーのリツイート | 「retweets_of:YuGiOh_OCG_INFO」 | 
| context: | ドメインID・エンティティIDの組からツイートを検索 “※”はワイルドカードとして使える  | 「context:67.1108732957936644096」 ※ドメインID 67→’Interests and Hobbies’ ※エンティティID 1108732957936644096→’YU-GI-OH!’  | 
| entity: | エンティティからツイートを検索 エンティティIDではなく文字列 エンティティIDを使いたい場合は「context:」を使用  | 「entity:”遊戯王”」 | 
3. 検索オプション
query(検索ワード)に以下の要素を含めると対応したものだけが検索できる。
マイナス検索するとそれ以外のものだけ取得できる。
| 演算子 | 説明 | 例 | 
|---|---|---|
| is:retweet | リツイート | 「is:retweet」 | 
| is:verified | 公式アカウントによるツイート | 「is:verified」 | 
| has:hashtag | ハッシュタグが含まれるツイート | 「has:hashtag」 | 
| has:links | リンクが含まれるツイート | 「has:links」 | 
| has:mentions | メンションが含まれるツイート | 「has:mentions」 | 
| has:media | メディアが含まれるツイート | 「has:media」 | 
| has:images | 画像が含まれるツイート | 「has:images」 | 
| has:videos | 動画が含まれるツイート | 「has:videos」 | 
| lang: | 特定の言語によるツイート たまに日本語が中国語扱いされる  | 「lang:ja」 | 
4. 取得できる属性
tweet_fields(取得する属性)に以下の要素を含めると対応したものが取得できる。
| 種類 | 型 | 説明 | 例 | 
|---|---|---|---|
| id (default) | string | ツイートのID | id”: “1050118621198921728 | 
| text (default) | string | ツイートの本文(utf-8) | text”: “this is tweet. | 
| attachments | object | 添付されたもの(画像・投票など)のタイプ | “attachments”: { “poll_ids”: [ “1199786642468413448” ] } “attachments”: { “media_keys”: [ “3_1136048009270239232” ] }  | 
| author_id | string | 投稿者のID | author_id”: “2244994945 | 
| context_annotations | array | ツイートのトピック(Twitterの自動認識?) domainは大まかなジャンル「スポーツ」「ゲーム」など entityは作品名のような細かい属性  | “context_annotations”: [ { “domain”: { “id”: “47”, “name”: “Brand”, “description”: “Brands and Companies” }, “entity”: { “id”: “10045225402”, “name”: “Twitter” } } ]  | 
| conversation_id | string | 会話の始点のツイートID | conversation_id”: “1050118621198921728 | 
| created_at | date (ISO 8601) | ツイートの投稿時刻(世界標準時) | created_at”: “2019-06-04T23:12:08.000Z | 
| entities | object | ツイートに埋め込まれているテキスト以外のもの ハッシュタグ・メンション・URL・キャッシュタグ アノテーション(このツイートが何に関連しているか) 対象テキストの開始位置・終了位置・アノテーションの場合は信頼度  | “entities”: { “annotations”: [ { “start”: 144, “end”: 150, “probability”: 0.626, “type”: “Product”, “normalized_text”: “Twitter” } ], “hashtags”: [ { “start”: 0, “end”: 17, “tag”: “blacklivesmatter” } ] }  | 
| geo | object | ユーザーがタグ付けした場所の詳細 場所のID・座標  | “geo”: { “coordinates”: { “type”: “Point”, “coordinates”: [ -73.99960455, 40.74168819 ] }, “place_id”: “01a9a39529b27f36” }  | 
| in_reply_to_user_id | string | リプライ先のユーザーID | in_reply_to_user_id”: “2244994945 | 
| lang | string | ツイートの言語 | lang”: “en | 
| non_public_metrics | object | ツイートの非公開エンゲージメント指標 ユーザー認証が必要 インプレッション数・リンククリック数・ ユーザープロフィールクリック数  | “non_public_metrics”: { “impression_count”: 99 “url_link_clicks”: 37 “user_profile_clicks”: 22 }  | 
| organic_metrics | object | ツイートのエンゲージメント指標 ユーザー認証が必要 インプレッション数・リンククリック数・ ユーザープロフィールクリック数 リプライ数・いいね数・リツイート数  | “organic_metrics”: { “impression_count”: 3880, “like_count”: 8, “reply_count”: 0, “retweet_count”: 4 “url_link_clicks”: 3 “user_profile_clicks”: 2 }  | 
| possiby_sensitive | boolean | センシティブな内容を含む可能性があるか | possibly_sensitive”: false promoted_metrics object “ツイートが宣伝されたときのエンゲージメント指標 ユーザー認証が必要 インプレッション数・リンククリック数・ ユーザープロフィールクリック数  | 
| public_metrics | object | ツイートの公開エンゲージメント指標 リプライ数・いいね数・リツイート数  | “public_metrics” : { “retweet_count”: 8, “reply_count”: 2, “like_count”: 39, “quote_count”: 1 }  | 
| referenced_tweets | array | 参照しているツイートのリスト タイプ(リプライ・引用)・ツイートID  | “referenced_tweets”: [ { “type”: “replied_to”, “id”: “1242125486844604425” } ]  | 
| reply_settings | string | このツイートにリプライ可能な範囲 | reply_settings”: “everyone | 
| source | string | ツイート元のアプリの名前 | source”: “Twitter Web App | 
| withheld | object | 地域の法律により表示が差し控えられているツイートの詳細 | “withheld”: { “copyright”: false, “country_codes”: [ “IN” ] }  | 
5. 参考
https://developer.twitter.com/en/docs/twitter-api/early-access
https://developer.twitter.com/en/docs/labs/recent-search/guides/search-queries
https://developer.twitter.com/en/docs/twitter-api/data-dictionary/object-model/tweet
6. Twitter API リンク





![Twitter API v2の使い方5[フォロワードクラウド]](/../images/post61_003.jpg)
![Twitter API v2の使い方6[コウメ太夫氏の#まいにちチクショーを取得する]](/../images/koume.jpg)


