こんにちは、ハッカー部のホーさんです。
たまに行くオフ会で自分に”さん”付けして自己紹介する業を背負ってます。
(ちょっと恥ずかしいです)
さて、今回は以前開発したALIS APIをpythonから簡単に使えるようにするライブラリ(参考記事)を、コマンド一つでインストールできるようにした(pip対応した)ので、使い方をご説明します。
このライブラリはもともと億ラビットくんがnode.jsで書いたもの(こちら)を、自分の勉強を兼ねてPython版として翻訳したものです。
上記の億ラビットくんのコードは、とても読みやすいのに、必要な機能が最低限のコードで書かれているという、プログラミングのお手本のようなコードです。node.js初見だった私でも問題なく読めました。必見。
1. MacでPython環境構築(記事の紹介)
2. pipコマンドでのalisモジュールのインストール
3. ハッカー部トークン(AHT)入手のためのid_token取得方法
4. プログラミングなしでのid_tokenの獲得方法(ひらいくんご提供)
本記事の(というか私の)環境はMacです。Windowsの方はゆうきさんの記事をご参考ください。Windowsでも、ゆうきさんのプログラムコードが使える環境なら、私のライブラリも使えるはずです。
事前準備として、Homebrewのインストールが必要です。
Homebrewをご存知ない方は、仮想通貨の赤ちゃんがターミナルの起動からHomebrewのインストールまで記事にしてくださってるので、ご参考下さい。
ALIS APIクライアントは、Python-3.6以上で動作します。(3.7推奨です)Macにはデフォルトでpython-2.7がインストールされているのですが、Pythonにはバージョン番号が3から始まるものがあり、私はPython-3.7,0を使っています。3.6より新しいものを使うのは、この辺りから新たに追加された機能(asyncio)を使っているためです。
MacでのPython環境の作り方は、とてもたくさん選択肢がありますが、ここではインストーラを利用する方法と、brewを利用する方法が載っている記事をご紹介します。
なお、私は複数バージョン切り替えたりしてる関係で、Pyenvとvirtualenvという環境分離ツールを使って仮想環境を作ってます。
初心者の方にはちょとハードル高いですが、「ライブラリを何でもかんでもごっちゃにするのが嫌」「自分が作ったライブラリを他の人も使えるか確認したい」「開発内容に応じてインストールするライブラリを分けたい(WEB/機械学習)」人には、オススメです。参考記事を貼っておきます。
まず、準備として以下のコマンドで関連パッケージをインストールします。
brew install llvm
インストールしたアプリケーションは、パスを通す(PCのどこにそのアプリケーションがインストールしているか教えてあげる)必要があるので、ターミナルで以下のコマンドを打ちましょう。
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH”' >> ~/.bash_profile
brew install llvmを実行した際に、ターミナル画面に似たような「PATH通してね」的なメッセージが出るはずなので、それをご参考下さい。
bash_profileというファイルの末尾にexport PATH.. の1行を足してます。ファイルの頭にピリオドがついてるのは、隠しファイルであることを示してます。
次に、開発したalisライブラリをインストールします。
pip install alis
インストールが開始します。python-3.7の実行コマンドがpython3の場合には、
pip3 install alis
になります。依存パッケージがいくつかあるので、色々ついでに自動インストールされます。少し時間がかかると思います。終わったら、無事にインストールできたか確認してみましょう。ここではpythonコマンドをターミナルで直接叩き、対話形式でやってみます。
python
>>> from alis import alis
>>>←これは、pythonを対話形式で実行すると画面に表示されるやつです。fromより先を入力ください。
エラーなく通れば、成功です。試しに、新着記事を出力してみましょう。下準備として、画面出力を綺麗に整えることができるpprintを呼んでおきましょう。
>>> from pprint import pprint
>>> pprint(alis.api_p(“/articles/recent”))
alis.api_pが、api呼び出しの基本ライブラリです。alis.apiというのもあるんですが、ここでは_pが付いているものを使います。お詳しい方には_pがついているものはpromise版、付いていないものはcallback版、と言えばお分りいただけるかと思います。
無事に新着記事が表示されましたでしょうか?
本記事ではインストールとその確認までのご紹介で、詳しい使い方は次回以降の記事でご紹介します。
次の項からは、今回インストールしたライブラリを使ったid_tokenの入手方法について解説します。
ハッカー部のサイト上で、自分のid_tokenを入力すると、ALIS記事の獲得報酬に応じて、ハッカー部トークン(AHT)を獲得することができるほか、ハッカー部の限定マガジンに記事を登録することができるようになります!
id_tokenというのは、ALISが使用しているAWS認証の、時限式パスワードみたいなものです。(1時間くらいすると失効します)
なお、一番簡単なのは、ひらいくんからご提案いただいた、プログラミングしないでブラウザから取得する方法だと思います。本記事の下の方でご紹介します。
まず、今回のライブラリを使った取得方法をご紹介します。下準備として、ターミナルの環境変数に以下を登録します。
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXX
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXX.. はそのまま貼り付けて大丈夫です。これはターミナルを新しく立ち上げると消えてしまいます。毎回入力するのも面倒ですので、bash_profileに登録しておくと良いと思います。
次に、適当な名前のpythonスクリプトに、以下を書きこみ保存します。ここではget_id_token.pyとでもしましょう。
from alis import alis
from alis.lib import Cognito
print(alis.api_p("/me/info", {}, {"username": "ユーザーネーム", "password": "パスワード"}))
print(Cognito.Cognito.get_cache({'username': 'ユーザーネーム'})['id_token'])
“ユーザーネーム”と”パスワード”はご自分のものに変更下さい。プログラムを使い終わったら、念のため消しておくことをお勧めします。
ファイルを保存して、
python get_id_token.py
を実行します。やたら長い英数字の文字列が出たらそれが id_tokenです。
最後に、ハッカー部でweb関係について億ラビットくんに並んでお詳しいひらいくんからご提供いただいた、プログラミング不要でid_tokenを知ることのできる方法をご紹介します。
まず、Chromeでalisサイトにログインし、右クリックして「検証」をクリックします。
なにやらカッコいい画面が表示されるので、上部のApplicationタブをクリックします。
左側にStorageが表示されます。その中のLocal Storageをクリックし、https://alis.toをクリックします。
左側のKeyの中から、idTokenと末尾についているものをクリックすると、画面の下側にやたら長い英数字の文字列が表示されます。それがid_tokenです。
めちゃ簡単ですね!!!
今回は以下の点についてご紹介しました。
1. MacでPython環境構築(記事の紹介)
2. pipコマンドでのalisモジュールのインストール
3. ハッカー部トークン(AHT)入手のためのid_token取得方法
4. プログラミングなしでのid_tokenの獲得方法(ひらいくんご提供)
pipコマンドでインストールできるようになり、APIクライアントを使うハードルを下げることができたかなと思います。次回以降の記事で、具体的な使い方をご紹介しようと思います。
ALISの中でもpython使う方結構増えたような気がしますので、ご参考になれば嬉しいです。
記事書いた人:ホーさん@ALISハッカー部(@hoosan16)
画像素材(フリー):http://www.wanpug.com/