Python スクレイピング

【Python】TwitterのDM送信をTweepyで自動化する

この記事は約3分で読めます。

 

こんにちは、ミナピピン(@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で相互フォローの確認;フォロバとリムーブを自動化

 

 

コメント

タイトルとURLをコピーしました