pythonでTwitterbotを作るためにまず一つ投稿してみる

Twitter botのつくり方

前項までで

Twitterへの開発者申請
APIキーの取得

を行いました

次はPythonでまず投稿するために環境を作ります。
botへの道が長い!

モジュールのインストール

oath認証を使います。
なので、まずrequests_oauthlibを使えるようにしましょう

コマンドプロンプトを開いて

pip install requests requests-oauthlib

コマンドプロンプトはWindowsキーを押してから「dos」って打ったら出てきます

pythonでrequests_oauthlibをimportする

from requests_oauthlib import OAuth1Session

といれて実行。エラーがなければOK

もし「そんなモジュールないよ!」と言われたときには
pythonがモジュールを読みに行くパスがズレているのかも

pythonのNo module named ‘requests_oauthlib’解決方法を記してますのでよろしければぜひ。

API Key、Access Keyを設定する

前項で取得したキーを設定しておきましょう

CONSUMER_KEY="XXX"
CONSUMER_SECRET="XXX"
ACCESS_TOKEN_KEY="XXX"
ACCESS_TOKEN_SECRET="XXX"

APIから投稿してみる&コードまとめ

詳細は追ってとして、まず投稿してみましょう

こちらはキカガク今西さんの動画を参考にしています。
すごい分かりやすいのでぜひ。

続編を強く希望します。

PythonでTwitterAPIを扱おう| Python活用シリーズ
from requests_oauthlib import OAuth1Session

CONSUMER_KEY="XXX"
CONSUMER_SECRET="XXX"
ACCESS_TOKEN_KEY="XXX"
ACCESS_TOKEN_SECRET="XXX"
twitter = OAuth1Session(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)

url = "https://api.twitter.com/1.1/statuses/update.json" #投稿先のエンドポイントです。

params = {'status':'光に向かって一歩でも進もうとしている限り、人間の魂が真に敗北する事など断じて無い'}

twitter.post(update_url,params=params)

XXXにはそれぞれ取得したキーを入れてください

実行するとクラウス・V・ラインヘルツさんが降臨します。
(イヤな人は見なくていいお好みの言葉に変えてください)

コードの説明

上段のおさらい
OAuthSession をインポートします

from requests_oauthlib import OAuth1Session

前項で取得したキーを放り込んでおきます

CONSUMER_KEY="XXX"
CONSUMER_SECRET="XXX"
ACCESS_TOKEN_KEY="XXX"
ACCESS_TOKEN_SECRET="XXX"

twitterという変数に認証情報(キー含む)を入れておきます

twitter = OAuth1Session(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)

これはリクエストするエンドポイントの設定。

↓のURLは投稿するときのエンドポイントです。
こちらのエンドポイント一覧にも少しまとめています。

url = "https://api.twitter.com/1.1/statuses/update.json"

どんなことをやりたいよ、とパラメータを設定してあげます。

どんなパラメータがあるのかは↓のリファレンスにあります。

POST statuses/update

投稿にはこちらの中のstatusを使います。

辞書型で設定していきましょう

params = {'status':'光に向かって一歩でも進もうとしている限り、人間の魂が真に敗北する事など断じて無い'}

認証情報やらなにやら入れた twitter 変数にて
設定したエンドポイント(URL)に
欲しいパラメータ(params)を
投げます(post)

twitter.post(url,params=params)

これでparamsを変数にしてsleepしながらforで回せば投稿し続けることはできそうですね

続きはまた後日

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