こんにちは、ミナピピン(@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で自動化する […]