読者です 読者をやめる 読者になる 読者になる

望月いちろうのREADME.md

書き溜めておいた技術記事や旅行記のバックアップです。

Twitter APIを利用した Bot で 特定のキーワードを検索させる - GET search/tweets

Twitter API

アクセスポイント

GET search/tweets

説明

認証済みアカウントに特定のキーワードを含むツィートを取得することができます。注意点としては、プロフィールにあるキーワードを含んでしまうことです。これは、企業向けのSearch APIを利用しないと回避できないので注意しましょう。

https://api.twitter.com/1.1/favorites/create.json

パラメータ

説明 必須か?
q 検索対象のキーワード プログラミング
lang 特定の言語に限定する ja ×
result_type 検索のタイプ recent ×
count 取得したいツィートの件数(最大100件) 15 ×

result_typeについて

  • mixed : recentとpopularを混ぜた結果が返ります。
  • recent : 最新のツィートを返します。
  • popular : Twitterのアルゴリズムが人気のあるツィートと判断したものを返します

Pythonを利用してこのアクセスポイントをテストしてみることにしましょう。

今回使うモジュールはこれです。

github.com

from twitter import *

# ここにあなたの取得したアクセストークンを入れてください。

conf = {"accessToken":"466345354-Hywvjhq5jh45gq345jh904jh045j0cbrg","accessTokenSecret":"A

y5ykq45jh0hjqj45hjq495jq490wj0I","consumerKey":"Uugj954jh0j5jh49jgpiCXH","consumerSecret":"y6y5q4h4hqDFejjthjrqtj9qjt90jrt09jrw0tgj90wj9-4hb-2948jh29-5u"}
# ここにツィートのIDを入力

id = "795812394882605056"

t = Twitter(auth=OAuth(conf["accessToken"],conf["accessTokenSecret"],conf["consumerKey"],conf["consumerSecret"]))

result = t.search.tweets(q="SIer")

 

このスクリプトを実行します。

python3 search.py

成功すると以下のようなJSONが返却されます。

{'search_metadata': {'max_id_str': '801432384457449473', 'max_id': 801432384457449473, 'count': 5, 'query': 'SIer', 'since_id_str': '0', 'refresh_url': '?since_id=801432384457449473&q=SIer&lang=ja&result_type=recent&include_entities=1', 'since_id': 0, 'completed_in': 0.058, 'next_results': '?max_id=801428739493986303&q=SIer&lang=ja&count=5&include_entities=1&result_type=recent'}, 'statuses': [{'created_at': 'Wed Nov 23 14:29:05 +0000 2016', 'favorited': False, 'in_reply_to_screen_name': None, 'is_quote_status': False, 'id': 801432384457449473, 'place': None, 'retweet_count': 1, 'in_reply_to_status_id_str': None, 'truncated': False, 'in_reply_to_user_id_str': None, 'entities': {'urls': [], 'user_mentions': [{'screen_name': 'tonjiru000', 'id': 69023454, 'indices': [3, 14], 'name': 'とんじる', 'id_str': '69023454'}], 'hashtags': [{'indices': [40, 44], 'text': 'wbs'}], 'symbols': []}, 'retweeted': False, 'text': 'RT @tonjiru000: ギークス、派遣常駐のSIerと何が違うんだろ。 #wbs', 'in_reply_to_user_id': None, 'metadata': {'result_type': 'recent', 'iso_language_code': 'ja'}, 'lang': 'ja', 'id_str': '801432384457449473', 'contributors': None, 'favorite_count': 0, 'source': '<a href="http://twitter.com/download/iphone" rel="nofollow">Twitter for iPhone</a>', 'coordinates': None, 'in_reply_to_status_id': None, 'geo': None, 'retweeted_status': {'created_at': 'Wed Nov 23 14:22:48 +0000 2016', 'favorited': False, 'in_reply_to_screen_name': None, 'is_quote_status': False, 'id': 801430805201362944, 'place': None, 'retweet_count': 1, 'in_reply_to_status_id_str': None, 'truncated': False, 'in_reply_to_user_id_str': None, 'entities': {'urls': [], 'user_mentions': [], 'hashtags': [{'indices': [24, 28], 'text': 'wbs'}], 'symbols': []}, 'retweeted': False, 'text': 'ギークス、派遣常駐のSIerと何が違うんだろ。 #wbs', 'in_reply_to_user_id': None, 'metadata': {'result_type': 'recent', 'iso_language_code': 'ja'}, 'lang': 'ja', 'id_str': '801430805201362944', 'contributors': None, 'favorite_count': 0, 'source': '<a href="http://twitter.com/download/iphone" rel="nofollow">Twitter for iPhone</a>', 'coordinates': None, 'in_reply_to_status_id': None, 'geo': None, 'user': {'friends_count': 255, 'created_at': 'Wed Aug 26 16:19:32 +0000 2009', 'profile_link_color': '009999', 'profile_use_background_image': True, 'id': 69023454, 'profile_sidebar_border_color': 'EEEEEE', 'following': False, 'profile_image_url': 'http://pbs.twimg.com/profile_images/765412537663795200/LamDhke3_normal.jpg', 'listed_count': 29, 'default_profile': False, 'contributors_enabled': False, 'profile_background_tile': True, 'description': 'ウォーキング/ジョギング/帰宅ラン/味噌ラーメン/担々麺/ゲーム/動画/ニチアサ/FGO', 'protected': False, 'is_translator': False, 'profile_sidebar_fill_color': 'EFEFEF', 'has_extended_profile': False, 'translator_type': 'none', 'location': '日本', 'lang': 'ja', 'follow_request_sent': False, 'profile_text_color': '333333', 'is_translation_enabled': False, 'name': 'とんじる', 'id_str': '69023454', 'followers_count': 176, 'url': None, 'utc_offset': -36000, 'default_profile_image': False, 'notifications': False, 'profile_image_url_https': 'https://pbs.twimg.com/profile_images/765412537663795200/LamDhke3_normal.jpg', 'screen_name': 'tonjiru000', 'verified': False, 'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme14/bg.gif', 'favourites_count': 470, 'entities': {'description': {'urls': []}}, 'profile_background_color': '131516', 'time_zone': 'Hawaii', 'statuses_count': 42809, 'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme14/bg.gif', 'geo_enabled': False}}, 'user': {'friends_count': 242, 'created_at': 'Wed Aug 26 14:29:02 +0000 2009', 'profile_link_color': '1DA1F2', 'profile_use_background_image': True, 'id': 68991869, 'profile_sidebar_border_color': 'C0DEED', 'following': False, 'profile_image_url': 'http://pbs.twimg.com/profile_images/3640416010/975184ba809f237a91c2007101a0b57c_normal.jpeg', 'listed_count': 6, 'default_profile': True, 'contributors_enabled': False, 'profile_background_tile': False, 'description': 'しがないコンピュータエンジニア(らしい・・・) 青い花という志村貴子さんの漫画が好物。最近は真面目なことつぶやくこと多し。', 'protected': False, 'is_translator': False, 'profile_sidebar_fill_color': 'DDEEF6', 'has_extended_profile': False, 'translator_type': 'none', 'location': '', 'lang': 'ja', 'follow_request_sent': False, 'profile_text_color': '333333', 'is_translation_enabled': False, 'name': 'TAO', 'id_str': '68991869', 'followers_count': 160, 'url': 'http://t.co/JdLap9SgJC', 'utc_offset': 32400, 'default_profile_image': False, 'notifications': False, 'profile_image_url_https': 'https://pbs.twimg.com/profile_images/3640416010/975184ba809f237a91c2007101a0b57c_normal.jpeg', 'screen_name': 'TAOriv', 'verified': False, 'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme1/bg.png', 'favourites_count': 750, 'entities': {'description': {'urls': []}, 'url': {'urls': [{'url': 'http://t.co/JdLap9SgJC', 'expanded_url': 'http://twilog.org/TAOriv', 'indices': [0, 22], 'display_url': 'twilog.org/TAOriv'}]}}, 'profile_background_color': 'C0DEED', 'time_zone': 'Tokyo', 'statuses_count': 15465, 'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme1/bg.png', 'geo_enabled': False}}, {'created_at': 'Wed Nov 23 14:25:16 +0000 2016', 'favorited': False, 'in_reply_to_screen_name': None, 'is_quote_status': False, 'id': 801431428059648000, 'place': None, 'retweet_count': 0, 'in_reply_to_status_id_str': None, 'truncated': False, 'in_reply_to_user_id_str': None, 'entities': {'urls': [{'url': 'https://t.co/mao5U54AQD', 'expanded_url': 'http://dlvr.it/MkL4kv', 'indices': [17, 40], 'display_url': 'dlvr.it/MkL4kv'}], 'user_mentions': [], 'hashtags': [], 'symbols': []}, 'retweeted': False, 'text': 'Apple、無線ルータから撤退か https://t.co/mao5U54AQD', 'in_reply_to_user_id': None, 'metadata': {'result_type': 'recent', 'iso_language_code': 'ja'}, 'possibly_sensitive': False, 'lang': 'ja', 'id_str': '801431428059648000', 'contributors': None, 'favorite_count': 0, 'source': '<a href="http://dlvr.it" rel="nofollow">dlvr.it</a>', 'coordinates': None, 'in_reply_to_status_id': None, 'geo': None, 'user': {'friends_count': 76, 'created_at': 'Sat Jul 02 06:45:46 +0000 2011', 'profile_link_color': '0000FF', 'profile_use_background_image': True, 'id': 327828128, 'profile_sidebar_border_color': 'C0DEED', 'following': False, 'profile_image_url': 'http://pbs.twimg.com/profile_images/1424030310/img642_t199-3_normal.jpg', 'listed_count': 3, 'default_profile': False, 'contributors_enabled': False, 'profile_background_tile': False, 'description': '「SIerブログ」の副管理人です。たまに、どうしようもない事をたくさんつぶやくかもしれません。 @sierblog', 'protected': False, 'is_translator': False, 'profile_sidebar_fill_color': 'DDEEF6', 'has_extended_profile': False, 'translator_type': 'none', 'location': '世界最大の経済都市(の家賃が安いエリア)', 'lang': 'ja', 'follow_request_sent': False, 'profile_text_color': '333333', 'is_translation_enabled': False, 'name': 'tki', 'id_str': '327828128', 'followers_count': 87, 'url': 'http://t.co/igpqxPdEzr', 'utc_offset': 32400, 'default_profile_image': False, 'notifications': False, 'profile_image_url_https': 'https://pbs.twimg.com/profile_images/1424030310/img642_t199-3_normal.jpg', 'screen_name': 'tki_sier', 'verified': False, 'profile_background_image_url': 'http://pbs.twimg.com/profile_background_images/282487722/2.jpg', 'favourites_count': 1, 'entities': {'description': {'urls': []}, 'url': {'urls': [{'url': 'http://t.co/igpqxPdEzr', 'expanded_url': 'http://sierblog.com/', 'indices': [0, 22], 'display_url': 'sierblog.com'}]}}, 'profile_background_color': 'FFFFFF', 'time_zone': 'Tokyo', 'statuses_count': 10212, 'profile_background_image_url_https': 'https://pbs.twimg.com/profile_background_images/282487722/2.jpg', 'geo_enabled': False}}, {'created_at': 'Wed Nov 23 14:22:48 +0000 2016', 'favorited': False, 'in_reply_to_screen_name': None, 'is_quote_status': False, 'id': 801430805201362944, 'place': None, 'retweet_count': 1, 'in_reply_to_status_id_str': None, 'truncated': False, 'in_reply_to_user_id_str': None, 'entities': {'urls': [], 'user_mentions': [], 'hashtags': [{'indices': [24, 28], 'text': 'wbs'}], 'symbols': []}, 'retweeted': False, 'text': 'ギークス、派遣常駐のSIerと何が違うんだろ。 #wbs', 'in_reply_to_user_id': None, 'metadata': {'result_type': 'recent', 'iso_language_code': 'ja'}, 'lang': 'ja', 'id_str': '801430805201362944', 'contributors': None, 'favorite_count': 0, 'source': '<a href="http://twitter.com/download/iphone" rel="nofollow">Twitter for iPhone</a>', 'coordinates': None, 'in_reply_to_status_id': None, 'geo': None, 'user': {'friends_count': 255, 'created_at': 'Wed Aug 26 16:19:32 +0000 2009', 'profile_link_color': '009999', 'profile_use_background_image': True, 'id': 69023454, 'profile_sidebar_border_color': 'EEEEEE', 'following': False, 'profile_image_url': 'http://pbs.twimg.com/profile_images/765412537663795200/LamDhke3_normal.jpg', 'listed_count': 29, 'default_profile': False, 'contributors_enabled': False, 'profile_background_tile': True, 'description': 'ウォーキング/ジョギング/帰宅ラン/味噌ラーメン/担々麺/ゲーム/動画/ニチアサ/FGO', 'protected': False, 'is_translator': False, 'profile_sidebar_fill_color': 'EFEFEF', 'has_extended_profile': False, 'translator_type': 'none', 'location': '日本', 'lang': 'ja', 'follow_request_sent': False, 'profile_text_color': '333333', 'is_translation_enabled': False, 'name': 'とんじる', 'id_str': '69023454', 'followers_count': 176, 'url': None, 'utc_offset': -36000, 'default_profile_image': False, 'notifications': False, 'profile_image_url_https': 'https://pbs.twimg.com/profile_images/765412537663795200/LamDhke3_normal.jpg', 'screen_name': 'tonjiru000', 'verified': False, 'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme14/bg.gif', 'favourites_count': 470, 'entities': {'description': {'urls': []}}, 'profile_background_color': '131516', 'time_zone': 'Hawaii', 'statuses_count': 42809, 'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme14/bg.gif', 'geo_enabled': False}}, {'created_at': 'Wed Nov 23 14:22:26 +0000 2016', 'favorited': False, 'in_reply_to_screen_name': None, 'is_quote_status': False, 'id': 801430712431673345, 'place': None, 'retweet_count': 0, 'in_reply_to_status_id_str': None, 'truncated': False, 'in_reply_to_user_id_str': None, 'entities': {'urls': [{'url': 'https://t.co/G6bHeXWYxP', 'expanded_url': 'http://sierblog.com/archives/1931518.html', 'indices': [32, 55], 'display_url': 'sierblog.com/archives/19315…'}], 'user_mentions': [], 'hashtags': [{'indices': [10, 14], 'text': '2ch'}], 'symbols': []}, 'retweeted': False, 'text': '[SIerブログ] #2ch Apple、無線ルータから撤退か https://t.co/G6bHeXWYxP', 'in_reply_to_user_id': None, 'metadata': {'result_type': 'recent', 'iso_language_code': 'ja'}, 'possibly_sensitive': False, 'lang': 'ja', 'id_str': '801430712431673345', 'contributors': None, 'favorite_count': 0, 'source': '<a href="http://twdesk.com/" rel="nofollow">つぶやきデスク</a>', 'coordinates': None, 'in_reply_to_status_id': None, 'geo': None, 'user': {'friends_count': 2360, 'created_at': 'Sat Aug 20 04:10:02 +0000 2011', 'profile_link_color': 'CC9900', 'profile_use_background_image': False, 'id': 358573596, 'profile_sidebar_border_color': 'E7E7CD', 'following': False, 'profile_image_url': 'http://pbs.twimg.com/profile_images/1521862257/______normal.jpg', 'listed_count': 51, 'default_profile': False, 'contributors_enabled': False, 'profile_background_tile': False, 'description': 'しばらく調整中です…', 'protected': False, 'is_translator': False, 'profile_sidebar_fill_color': 'E7E7CD', 'has_extended_profile': False, 'translator_type': 'none', 'location': '', 'lang': 'ja', 'follow_request_sent': False, 'profile_text_color': '333333', 'is_translation_enabled': False, 'name': 'ニュー速証券', 'id_str': '358573596', 'followers_count': 1909, 'url': None, 'utc_offset': 32400, 'default_profile_image': False, 'notifications': False, 'profile_image_url_https': 'https://pbs.twimg.com/profile_images/1521862257/______normal.jpg', 'screen_name': 'teststock13', 'verified': False, 'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme1/bg.png', 'favourites_count': 0, 'entities': {'description': {'urls': []}}, 'profile_background_color': 'FFFFFF', 'time_zone': 'Tokyo', 'statuses_count': 9314, 'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme1/bg.png', 'geo_enabled': False}}, {'created_at': 'Wed Nov 23 14:14:35 +0000 2016', 'favorited': False, 'in_reply_to_screen_name': None, 'is_quote_status': False, 'id': 801428739493986304, 'place': None, 'retweet_count': 0, 'in_reply_to_status_id_str': None, 'truncated': False, 'in_reply_to_user_id_str': None, 'entities': {'urls': [], 'user_mentions': [], 'hashtags': [], 'symbols': []}, 'retweeted': False, 'text': '言うほどか?\u3000いろいろ揃ってるけど大手SIer所属であまりにも多忙で出会いも無くて…\u3000みたいな人は居るやろ(マジレス', 'in_reply_to_user_id': None, 'metadata': {'result_type': 'recent', 'iso_language_code': 'ja'}, 'lang': 'ja', 'id_str': '801428739493986304', 'contributors': None, 'favorite_count': 0, 'source': '<a href="http://janetter.net/" rel="nofollow">Janetter</a>', 'coordinates': None, 'in_reply_to_status_id': None, 'geo': None, 'user': {'friends_count': 56, 'created_at': 'Thu Apr 29 16:50:16 +0000 2010', 'profile_link_color': '1DA1F2', 'profile_use_background_image': True, 'id': 138471094, 'profile_sidebar_border_color': 'C0DEED', 'following': False, 'profile_image_url': 'http://pbs.twimg.com/profile_images/679349731470868481/lJ7TdLf2_normal.jpg', 'listed_count': 9, 'default_profile': True, 'contributors_enabled': False, 'profile_background_tile': False, 'description': '【職業】プログラマ\u3000【昔】駒大政治学科/富崎ゼミ/照明部員\u3000【つぶやき】鉄道/自作PC/ミリタリー/アニメ/DeNAベイスターズ/政治学科/舞台照明', 'protected': False, 'is_translator': False, 'profile_sidebar_fill_color': 'DDEEF6', 'has_extended_profile': False, 'translator_type': 'none', 'location': '', 'lang': 'ja', 'follow_request_sent': False, 'profile_text_color': '333333', 'is_translation_enabled': False, 'name': 'みうりー', 'id_str': '138471094', 'followers_count': 185, 'url': None, 'utc_offset': 32400, 'default_profile_image': False, 'notifications': False, 'profile_image_url_https': 'https://pbs.twimg.com/profile_images/679349731470868481/lJ7TdLf2_normal.jpg', 'screen_name': 'LST_miury', 'verified': False, 'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme1/bg.png', 'favourites_count': 3448, 'entities': {'description': {'urls': []}}, 'profile_background_color': 'C0DEED', 'time_zone': 'Tokyo', 'statuses_count': 26850, 'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme1/bg.png', 'geo_enabled': True}}]}

わかりにくいですが、結果はresult["statuses"]にリスト形式で格納されています。個別のデータを見たいときは以下のようにしましょう。

for item in result["statuses"]:

     print(item)