Twitter Bot を制作してみる②
以下の公式ドキュメントを参考にして、制作を行っていく。
日本語に翻訳されたページもあったので、参考にどうぞ。OAuth認証を行う
以下のドキュメントを参考にOAuth認証を行った。
[Python] OAuth認証でTwitter連携/ログインを実装する
Python / TweepyでOAuth認証してツイートする
また、公式ドキュメントの
- Authentication Tutorial (認証に関するチュートリアル)
- OAuth 1a Authentication (OAuth認証)
より、以下のコードを記述しアプリの認証を行う。
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(key, secret)
以下の4つのキーを自身の作成したTwitter Developersから取得してくる。
また、取得したキーを変数へ格納する。
consumer_key = 'API Key'
consumer_secret = 'API secret'
key = 'Access Token'
secret = 'Access secret'
以上で、アクセストークンの設定は終了。
実際に、ツイートしてみる
また、公式ドキュメントに戻り、記載されている以下のコードを記述してみる。
api = tweepy.API(auth)
api.update_status('tweepy + oauth!')
実際にこれを実行してみると、以下のようにツイートが自動で行われた。
現段階での全体コード
現時点での、全体コードを以下に示す。
キー等は各自異なるため、自身のキーに置き換えてお使いください。
import tweepy
consumer_key = 'vm31oIe5tfjnDDsR8Xtw71wxA'
consumer_secret = 'SJGpZdGh5qZF7qlB8qEAGzq7YKCsGGuBLOWtqJT7IVr4j6Pp1t'
key = '1435544643890933762-Wq3lSQ6pzxM8BlftJhpWkXQ6zULx5b'
secret = '9Av2fdcL8bRTKswyQMLftFNHYgorur5jAhSMHHVPLytV5'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(key, secret)
api = tweepy.API(auth)
api.update_status('tweepy + oauth!')
ここまでで考えられるエラー対処
モジュールのインポートがうまくいっていない
以下のようなエラーコードが出た場合の対処法。
Unable to import tweepy module
pip uninstall tweepy
でモジュールを削除し、
再度 pip install tweepy
をすれば多分治る。
治らない場合、PATHの確認を行う。
Pythonでimportの対象ディレクトリのパスを確認・追加(sys.pathなど)
わからない場合は、Google Colaboratoryを使うのをお勧めする。
アプリケーション権限によるエラー
以下のようなエラーコードが出た場合の対処法。
Read-only application cannot POST.
このようなエラーが出た場合、TwitterDevelopersの方でアプリケーション権限を確認する必要がある。権限が「Read Only」となっている為、「Read and Write」もしくは「Read, Write and Access direct messages」に変更する必要がある。
また、変更した際、アクセスキーも変更されるため、再度キーを発行し直す必要がある。
Discussion