Mastodonで始めるPythonプログラミング!腕試しテスト50本ノック(初級編)

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

どうも、匠です。

匠は、2017年にMastodonで遊びたくて、苦手なプログラミングを克服して、Pythonを習得しました。

PythonとPostgreSQLで苦手だったプログラミングをはじめた話
どうも、匠です。マストドン(Mastodon)向けに色んなことをやりたくて、ついにOSSでのプログラミングに手を出してしまいました。元々はプログラミングが苦手だったのに。ホント遊ぶ欲って凄いですね。。。今回はこれからプログラムを作っ...

この経験から Mastodon の API を使って練習するのは、下記の理由でプログラミング学習に有効だと感じました。

  • Mastodonでやりたいことを自動化できるので実用的で、モチベーションが上がりやすい
  • REST APIなので扱いやすい
  • TwitterなどのSNSと比べて、API利用の制約が緩い
  • PythonはMastodon向けラッパーモジュールもある
  • それなりに扱い方にクセはあるので勉強になる

これらの条件を踏まえ、Python初心者が Mastodonを楽しめるように、簡単な練習問題を50問ほど作ってみました。

初級Pythonistaの皆様の腕試しにお役立ちできれば幸いです。ぜひチャレンジしてみて下さい。

なお、回答はこちらに掲載していますので、解答できたらご覧ください。

Python逆引きサンプルコード50選(Mastodon API初級編)
本記事は、こちらの解答編を兼ねたサンプルスクリプト集となります。皆様のPython力向上&マストドンライフの一助になれば幸いです。前提今回の解答は、下記の前提で記載しています。なるべく requestsモジュール もし...
スポンサーリンク

前提条件

これから紹介する練習問題について、下記を前提とします。

  • あらかじめMastodonアカウントは保持していること
  • 特に指定しない限り「インスタンス」とは「保持しているアカウントのあるMastodonインスタンス」を指す
  • 表示しなさい = 標準出力すること
  • ファイルに保存しなさい = 任意のテキストファイルに書き込み保存すること
  • 回答は Python 3系にて記載しますが、Python 2系でも作れます。
  • APIへのアクセスは下記のいずれかで行うこと
    • requestsモジュールを使ってREST APIへリクエストする
    • Mastodon.py
  • もちろん IDLE や Python のコマンドラインで回答を作るのもアリです。

ちなみに、Python以外でも練習問題はこなせると思います。匠は答えを用意しませんが、ぜひ楽しんでいたのみればと思います。

スポンサーリンク

練習1.APIの操作準備

まずはトゥートする準備ができるかを確認する問題です。

  1. インスタンスへ疎通確認してください。
    (ヒント:HTTPSポートへ何らか通信できればOK)
  2. インスタンスへのREST APIへの疎通確認してください。
    (対象APIやレスポンス値は問わない)
  3. インスタンスへクライアント「Python_Exercise」を登録して、Client ID と Client Secret を取得してください。
  4. インスタンスからアクセストークンを取得して、ファイル「access_token.txt」に保存してください。
  5. 上記で保存したアクセストークンを表示してください
スポンサーリンク

練習2. トゥート投稿

Pythonを使って様々なトゥートができるかを確認する問題です。

  1. 「はじめてのトゥート #Python練習」とトゥート(投稿)してください。
  2. 「2回目のトゥート #Python練習」というテキストと何か画像1つを添付してトゥート(投稿)してください。
  3. 「3回目のトゥート #Python練習」というテキストと何か画像4つを添付してトゥート(投稿)してください。
  4. 「4回目のトゥート #Python練習」というテキストに、「CWの練習」という警告(CW)を付けて、トゥート(投稿)してください。
  5. 「5回目のトゥート #Python練習」というテキストに、何か画像1つを添付して、NSFWで隠してトゥート(投稿)してください。
  6. 「はじめての非掲載トゥート #Python練習」というテキストを、公開範囲「非掲載」に設定してトゥート(投稿)してください。
  7. 「はじめての非公開トゥート #Python練習」というテキストを、公開範囲「非公開」に設定してトゥート(投稿)してください。
  8. 「@[email protected] はじめてのダイレクトトゥート #Python練習」というテキストを、公開範囲「ダイレクト」に設定してトゥート(投稿)してください。
  9. 「@[email protected] トゥート練習中 #Python練習」というテキストを下記の設定でトゥート(投稿)してください。
    • CW / 警告文「CW練習中」を付与すること
    • 何らか画像を1つ添付 / NSFWを付与すること
    • 公開範囲は「非公開」
  10. [email protected]に「メンション練習中 #Python練習」というテキストでメンションを送ってください。
スポンサーリンク

練習3. トゥート操作

Pythonを使って、トゥートに関する様々な操作ができるかを確認する問題です。

  1. 練習2-1で投稿したトゥートにお気に入りを付けてください。
  2. 上記で付けたお気に入りをトゥートから解除してください。
  3. 練習2-1で投稿したトゥートをブーストしてください。
  4. 上記でブーストしたトゥートの、ブーストを解除してください。
  5. 練習2-1で投稿したトゥートを削除してください。
スポンサーリンク

練習4. 自分のアカウント情報の取得

  1. アカウント情報を取得して、JSON形式で表示しなさい。
  2. 自分のアカウント名(アカウント名@インスタンス名)のみ表示しなさい。
  3. 自分の表示名のみ表示しなさい。
  4. 自分のプロフィールの内容のみ表示しなさい。
  5. 自分のフォロー数のみ表示しなさい。
  6. 自分のフォロワー数のみ表示しなさい。
  7. 自分のお気に入り数のみ表示しなさい。
  8. 自分の最新トゥート10件をJSON形式で表示しなさい。
  9. 自分の最新トゥート1件の時間と内容のみ表示しなさい。
  10. 自分の最新トゥート1件のアプリ名のみ表示しなさい。
スポンサーリンク

練習5. 他人のアカウント情報の取得

  1. アカウント「いつもの匠([email protected])」を検索して、その結果をJSON形式で表示しなさい。
  2. アカウント「いつもの匠([email protected])」の表示名を表示しなさい。
  3. アカウント「いつもの匠([email protected])」のプロフィール内容のみ表示しなさい。
  4. アカウント「いつもの匠([email protected])」のフォロー数のみ表示しなさい。
  5. アカウント「いつもの匠([email protected])」のフォロワー数のみ表示しなさい。
  6. アカウント「いつもの匠([email protected])」のお気に入り数のみ表示しなさい。
  7. アカウント「いつもの匠([email protected])」の最新トゥート10件をJSON形式で表示しなさい。
  8. アカウント「いつもの匠([email protected])」の最新トゥート1件の投稿時間と内容を表示しなさ。
  9. アカウント「いつもの匠([email protected])」の最新トゥート1件のアプリ名のみ表示しなさい。
  10. アカウント「いつもの匠([email protected])」の最新トゥート1件のお気に入りがついているか、ついているならお気に入り数を表示しなさい。
スポンサーリンク

練習6. タイムライン表示

  1. インスタンスのホスト名(FQDN)を表示しなさい。
  2. インスタンスの説明のみ表示しなさい。
  3. インスタンスのMastodonのバージョンのみ表示しなさい。
  4. インスタンスのローカルタイムラインのトゥートを10件表示しなさい。
  5. インスタンスの連合タイムラインのトゥートを10件表示しなさい。
  6. ハッシュタグ「#」のついたトゥートを最新10件のみ表示しなさい。
  7. 自分が所属するインスタンスのローカルタイムラインのトゥートを100件表示しなさい。
  8. 自分が所属するインスタンスの連合タイムラインのトゥートを100件表示しなさい。
  9. ハッシュタグ「#」のついたトゥートを最新100件のみ表示しなさい。
  10. 自分が所属するインスタンスのローカルタイムラインのトゥート200件表示しなさい。
    表示形式: 時間/アカウント名/トゥート内容

以上で終了です。いかがでしたでしょうか?

スポンサーリンク

参考

Mastodon の API に関する公式情報はこちらです。

documentation/API.md at master · tootsuite/documentation · GitHub

Python向けのモジュールが提供されています。今のところ頻繁に更新されています。

halcy/Mastodon.py
Python wrapper for the Mastodon ( ) API. - halcy/Mastodon.py

シェルスクリプト(というよりcurlコマンド)でAPIを使うための初歩的な方法を紹介されています。非常に分かり易くて参考になりました。

匠がPythonを習得するキッカケになった書籍です。第一部と第二部の8章と10章さえ読めば、今回の問題は解けます。

スポンサーリンク

問い合わせ先

ご意見・ご感想はもちろん、内容の誤りや不足などあれば、遠慮なくこちらまでご連絡ください。

このエントリーをはてなブックマークに追加
Twitter: @itsumonotakumi
Mastodon: @[email protected]
Facebook: itsumonotakumi

Mastodon入門ガイド

Mastodon入門ガイド

大喜多 利哉
1,728円(11/12 17:13時点)
発売日: 2017/08/10
Amazonの情報を掲載しています

自宅・ノートPCインスタンス構築ガイド~マストドンを持って街へ出よう! ~

自宅・ノートPCインスタンス構築ガイド~マストドンを持って街へ出よう! ~

児島 新
1,620円(11/12 17:13時点)
発売日: 2017/09/15
Amazonの情報を掲載しています

ITセキュリティを生業とするエンジニアという名の社畜です。妻と子供一人と共に、毎日を楽しく生きてます。このブログを通じて、ただひたすらに共有欲を発散しています。詳しいプロフィールはこちら