今回やること〜
tweepyの「send_direct_message」メソッドを使って特定のユーザーにダイレクトメッセージを送ります!
TwitterAPIの取得がまだの人はこちらから先にご覧ください
やり方〜
では早速やっていきましょう!
まず、大前提として他の人に迷惑をかけないようにしましょう!なので、今回のTwitterAPIを登録しているアカウント以外にもう1つアカウントを用意してください!
(DMの送り先にするためです!無い人は誰か友達に協力してもらうか新しくアカウントを作っときましょ〜)
次に
「send_direct_message」の使い方です!
api.send_direct_message(recipient_id='**************',text='Hello World')
- recipient_id
- 送り先のユーザーのID
- text
- 送る内容
- 10,000文字まで
です!!
詳しくはこちら
次にユーザーIDの調べ方です!
これも複数のやり方が想像できますが、今回は「search_users」と言うメソッドを使って探してみようと思います!
users = api.search_users(q="**********")
- q
- 検索キーワード
詳しくはこちら
- 検索キーワード
import tweepy
api_key = "**********"
api_key_secret = "**********"
access_token = "**********"
access_token_secret = "**********"
auth = tweepy.OAuthHandler(api_key, api_key_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)
# TwitterAPI認証完了
users = api.search_users(q=str(input("ユーザーを検索しよう! >>>>")))
for user in users[:10]:
print('-------------')
print(f'ユーザーID = {user.id}')
print(f'ユーザー名 = {user.screen_name}')
print(f'アカウント名 = {user.name}')
print(f'自己紹介文 = {user.description}')
print(f'フォロー数 = {user.friends_count}')
print(f'フォロワー数 = {user.followers_count}')
print('-------------')
このコードを実行して送り先のユーザーIDを調べましょう!ユーザー名とかフォロワー数とか確認して必ず間違わないようにしましょう!!
ユーザーIDがわかったらあとは簡単です!!!
import tweepy
api_key = "**********"
api_key_secret = "**********"
access_token = "**********"
access_token_secret = "**********"
auth = tweepy.OAuthHandler(api_key, api_key_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)
# TwitterAPI認証完了
api.send_direct_message(recipient_id='***************',text='Hello World')
以上です!おわり〜〜〜
うまく行かなかった人は多分権限かなと思います!
このURLの「Projects & Apps」の「User authentication settings」を確認してみましょ〜!
ラストちょっとおまけ
import tweepy
import datetime
api_key = "**********"
api_key_secret = "**********"
access_token = "**********"
access_token_secret = "**********"
auth = tweepy.OAuthHandler(api_key, api_key_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)
# TwitterAPI認証完了
direct_messages = api.get_direct_messages()
for dm in direct_messages:
send_user_id = dm.message_create['sender_id']
target_user_id = dm.message_create['target']['recipient_id']
send_user = api.get_user(user_id=send_user_id)
target_user = api.get_user(user_id=target_user_id)
time_stamp = int(dm.created_timestamp)/1000
print('------------')
print(f'ID:{dm.id}')
print(f"誰から:{send_user.name}")
print(send_user.screen_name)
print(f"誰に:{target_user.name}")
print(target_user.screen_name)
print(f"内容:{dm.message_create['message_data']['text']}")
print(f'タイムスタンプ:{datetime.datetime.fromtimestamp(time_stamp)}')
過去30日間の全てのDMの内容を取得しています!
これで誰に何を送ったかわかります!
そんじゃあーばいちゃ〜〜〜〜
次何やろかな、、、、