こんにちは、ミナピピン(@python_mllover)です。
今回はTweepyでDMを自動で送信する処理を実装していきたいと思います。
認証周りの確認
DMを送信する際にはAPIの権限をまず確認する必要があります。というのもAPIのデフォルトの権限ではDM周りの権限が与えられておらず、下記に記載するコードを実行しようとすると以下のようなエラーが返ってきます。
“code”:93,”message”:”This application is not allowed to access or delete your direct messages.”
APIの権限の確認はAPP permissionのEditから確認できます。
そして、権限がRead+Write+DirectMessagesとして「save」してください。
そして、これで解決するのかと思いきやこのままだと認証エラーのままで、解決法としてAPI鍵を再生成する必要があります。
TweepyでDMを送信する
# ライブラリの読み込み import tweepy # 自分のAPI鍵をセット CK = ''# Consumer Key CS = ''# Consumer Secret AT = ''# Access Token AS = ''# Accesss Token Secert # 認証情報を設定 auth=tweepy.OAuthHandler(CK, CS) auth.set_access_token(AT, AS) # アカウント指定(Twitterアカウントの@以降の英数字) Account = 'python_mllover' # アカウントの内部IDを取得する inner_id = api.user_timeline(Account, count=1, page=0)[0].user.id # APIインスタンスの作成 api=tweepy.API(auth) api.send_direct_message(recipient_id=inner_id,text='こんにちは')
コード自体はTweepyでラッピングされているので、数行で済みます。TweepyでのDM送信はapi.send_direct_message()
で行えます。ポイントは引数のrecipient_idがアプリの表向きのIDではなく内部IDのことで数値型を指定する必要があるという点。内部IDでないと以下のようなエラーが返されます。
‘code’: 214, ‘message’: “event.message_create.target.recipient_id: ‘hogehoge’ is not a valid Long”
参照:https://teratail.com/questions/280497
参照:https://qiita.com/kaji-tan/items/ead6ad8b9b809a7be29b
関連記事:【Python】Tweepyで検索に引っかかったツイートを自動でいいね!する
関連記事:【Python】Tweepyで相互フォローの確認;フォロバとリムーブを自動化
コメント
[…] 関連記事:【Python】TwitterのDM送信をTweepyで自動化する […]
[…] 関連記事:【Python】TwitterのDM送信をTweepyで自動化する […]
[…] 関連記事:【Python】TwitterのDM送信をTweepyで自動化する […]