やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

MastodonのAPIを使いたい

MastodonのWebAPIを使ってみたい。その準備。

前回まで

以前、Twitter風サービスMastodonに登録してみた。

https://mstdn.jp/web/accounts/233143

Mastodon

  • Mastodonソフトウェアは公開されている
    • 誰でも個人でMastodon鯖を運用できる

懸念

  • 管理が運用者にゆだねられる
    • 個人情報が盗まれる(管理人、ハッカー
      • 誰がいつどこで何をしていたか
        • 住所、氏名、年齢、趣味、思想、画像(近所や部屋の風景、本人の体の一部)、IPアドレス、発言時刻
  • 運用停止
  • 発言データをバックアップできない

希望

自分の発言データをローカルにバックアップしたい。もし運用停止になってもデータだけは残しておけば別鯖で復元できるかもしれないから。

参考

http://qiita.com/kk6/items/5ecfa1a8a6bd282c1d61

Mastodon.pyなるものが既にあるが細かい操作ができないらしい。

Mastodonは認証にOAuth2.0を使うらしい。OAuthには散々苦しめられた思い出しかない。

APIを使うまでの流れ

  1. python環境準備
  2. APIキー情報取得
  3. APIを叩く

今回はpython環境準備のみ。

準備

webapi用パッケージ仮想環境をつくる。

0. pyenvとPythonをインストールする

pyenvとPythonをインストールする

1. pyenvを有効化する

.bash_profile

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
bash -l

2. pyenvで任意のPythonバージョンを指定する

$ pyenv global 3.6.1
$ pyenv version
3.6.1 (set by /home/mint/.pyenv/version)

3. パッケージ仮想環境をつくる

$ python3 -m venv webapi

任意のパスで作る。

4. 仮想環境にパッケージをインストールする

対象の仮想環境を有効化する。

$ source ./webapi/bin/activate

対象の仮想環境にインストールする。requests_oauthlibパッケージを。

(webapi) $ pip install requests_oauthlib
 $ pip install requests_oauthlib
Collecting requests_oauthlib
  Downloading requests_oauthlib-0.8.0-py2.py3-none-any.whl
Collecting requests>=2.0.0 (from requests_oauthlib)
  Using cached requests-2.17.3-py2.py3-none-any.whl
Collecting oauthlib>=0.6.2 (from requests_oauthlib)
  Downloading oauthlib-2.0.2.tar.gz (125kB)
    100% |████████████████████████████████| 133kB 1.2MB/s 
Collecting certifi>=2017.4.17 (from requests>=2.0.0->requests_oauthlib)
  Using cached certifi-2017.4.17-py2.py3-none-any.whl
Collecting idna<2.6,>=2.5 (from requests>=2.0.0->requests_oauthlib)
  Using cached idna-2.5-py2.py3-none-any.whl
Collecting urllib3<1.22,>=1.21.1 (from requests>=2.0.0->requests_oauthlib)
  Using cached urllib3-1.21.1-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.0.0->requests_oauthlib)
  Using cached chardet-3.0.3-py2.py3-none-any.whl
Installing collected packages: certifi, idna, urllib3, chardet, requests, oauthlib, requests-oauthlib
  Running setup.py install for oauthlib ... done
Successfully installed certifi-2017.4.17 chardet-3.0.3 idna-2.5 oauthlib-2.0.2 requests-2.17.3 requests-oauthlib-0.8.0 urllib3-1.21.1

所感

準備だけで大変なのは恒例。