LoginSignup
0
0

More than 1 year has passed since last update.

【TwitterAPI】超簡単!tweepyを使ってDM送ってみた〜

Last updated at Posted at 2022-11-04

今回やること〜

tweepyの「send_direct_message」メソッドを使って特定のユーザーにダイレクトメッセージを送ります!
スクリーンショット 2022-11-04 10.06.08.png
TwitterAPIの取得がまだの人はこちらから先にご覧ください

やり方〜

では早速やっていきましょう!
まず、大前提として他の人に迷惑をかけないようにしましょう!なので、今回のTwitterAPIを登録しているアカウント以外にもう1つアカウントを用意してください!
(DMの送り先にするためです!無い人は誰か友達に協力してもらうか新しくアカウントを作っときましょ〜)

次に
「send_direct_message」の使い方です!

send_direct_message.py
api.send_direct_message(recipient_id='**************',text='Hello World')
  • recipient_id
    • 送り先のユーザーのID
  • text

次にユーザーIDの調べ方です!
これも複数のやり方が想像できますが、今回は「search_users」と言うメソッドを使って探してみようと思います!

search_users.py
users = api.search_users(q="**********")
search_users.py
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がわかったらあとは簡単です!!!

send_direct_message.py
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')

これを実行するとDMが送られていることが確認できます!!
スクリーンショット 2022-11-04 10.06.08.png

以上です!おわり〜〜〜
うまく行かなかった人は多分権限かなと思います!
このURLの「Projects & Apps」の「User authentication settings」を確認してみましょ〜!

ラストちょっとおまけ

get_dm.py
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の内容を取得しています!
これで誰に何を送ったかわかります!

そんじゃあーばいちゃ〜〜〜〜

次何やろかな、、、、

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0