Photo by Bryan Kemp
秋山です。
最近話題の「Mastodon」( マストドン )ですが、皆さん使っていますか?
私は、個人的にtootとtweetを同時にしたいと思うことが多いです。せっかくなので、それを叶えるツールを(ざっくりですが)Pythonで作ってみました。
便利なライブラリや認証機構を使ってサクッと作るレシピという感じで、基本的にはAPIを叩くだけなので技術的に難しいことはありません。とにかく素早くBotみたいなものを作りたい!という人の参考になればと思います。
(※ただしあまりインスタンスへ負荷がかからないようにしましょう、Botを作るのであれば自分でインスタンスを立てるのが望ましいかと思います)
■Mastodonの設定
まずは Mastodon.py と twython を pip でインストールします。
pip install Mastodon.py twython
次に、Mastodonにアプリの登録をしましょう。Twitterで言うところの、連携アプリの登録みたいな感じです。
from mastodon import Mastodon Mastodon.create_app("toot & tweet", api_base_url = "https://mstdn.jp", to_file = "app_key.txt" )
上記のコードを一度実行すると app_key.txt というアプリのキーが吐き出されますので、それを使ってログインします。
app_key.txt を指定して mstdn.jp にログインしましょう。
from mastodon import Mastodon mastodon = Mastodon( client_id="app_key.txt", api_base_url = "https://mstdn.jp") mastodon.log_in( "登録メールアドレス", "パスワード", to_file = "user_key.txt")
上記のコードを実行すると、 user_key.txt に指定したアカウントでAPIを使うキーが吐き出されます。
api_key.txt と user_key.txt を指定すると、こんな感じでAPIを叩くことができます。
from mastodon import Mastodon def toot(s): mastodon = Mastodon( client_id="app_key.txt", access_token="user_key.txt", api_base_url = "https://mstdn.jp") mastodon.toot(s) toot("TEST")
ここまでがMastodon用のコードになります。
■Twitterの設定
とりあえずTwitterにログインして、Twitter Appsのページを開き、Create New Appから必要事項を記入しましょう。
その後、作られたアプリケーションを開いて Keys and Access Token から Token Action で Create my access token を押してトークンを作ります。
Consumer Key (API Key)
Consumer Secret (API Secret)
Access Token
Access Token Secret
この4項目の右側のトークンを、下記のコードにコピペして使います。
import datetime, twython c_key = "Consumer Key (API Key)" cs_key = "Consumer Secret (API Secret)" a_key = "Access Token" as_key = "Access Token Secret" def tweet(s): api = twython.Twython(c_key, cs_key, a_key, as_key) api.update_status(status=s) tweet("TEST")
こんな感じでtweetが成功します。
ソースコードをいちいち書き換えたりするのは面倒なので、コマンドラインツール化をしましょう。以前このブログでも紹介した「Python Fire」を使ってコマンドラインツール化します。
Python Fireを使ってみた記事はこちら
paiza.hatenablog.com
import datetime, twython c_key = "Consumer Key (API Key)" cs_key = "Consumer Secret (API Secret)" a_key = "Access Token" as_key = "Access Token Secret" def tweet(s): api = twython.Twython(c_key, cs_key, a_key, as_key) api.update_status(status=s) from mastodon import Mastodon def toot(s): mastodon = Mastodon( client_id="app_key.txt", access_token="user_key.txt", api_base_url = "https://mstdn.jp") mastodon.toot(s) def toot_and_tweet(s): tweet(s) toot(s) if __name__ == '__main__': import fire fire.Fire(toot_and_tweet)
こんな感じで toot_and_tweet.py というファイルを作れば、コマンドライン上でこんなふうにコマンドを叩くだけで
tootとtweetが一度にできます。
■まとめ
便利なライブラリ群と簡単な認証機構のおかげで、簡単に自分の欲しいツールを作ることができました。
tootとtweetの連携に限らず、いろいろ応用できると思います。
■Pythonの講座も公開中!プログラミングが動画で学べるレッスン
paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。
自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。