テクノロジー

ALIS APIクライアントとid_tokenの取得方法

ホーさん's icon'
  • ホーさん
  • 2018/10/10 03:08
Content image

こんにちは、ハッカー部のホーさんです。

たまに行くオフ会で自分に”さん”付けして自己紹介する業を背負ってます。

(ちょっと恥ずかしいです)


さて、今回は以前開発したALIS APIをpythonから簡単に使えるようにするライブラリ(参考記事)を、コマンド一つでインストールできるようにした(pip対応した)ので、使い方をご説明します。

このライブラリはもともと億ラビットくんがnode.jsで書いたもの(こちら)を、自分の勉強を兼ねてPython版として翻訳したものです。

上記の億ラビットくんのコードは、とても読みやすいのに、必要な機能が最低限のコードで書かれているという、プログラミングのお手本のようなコードです。node.js初見だった私でも問題なく読めました。必見。


Content image

【この記事の内容】

1. MacでPython環境構築(記事の紹介)
2. pipコマンドでのalisモジュールのインストール
3. ハッカー部トークン(AHT)入手のためのid_token取得方法
4. プログラミングなしでのid_tokenの獲得方法(ひらいくんご提供)


Content image

【1. MacでのPython環境】

本記事の(というか私の)環境は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/機械学習)」人には、オススメです。参考記事を貼っておきます。




Content image

【2. pipコマンドでのalisモジュールのインストール】

まず、準備として以下のコマンドで関連パッケージをインストールします。

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の入手方法について解説します。


Content image

【3. 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です。


Content image

【4. Chromeからid_tokenを調べる方法】

最後に、ハッカー部でweb関係について億ラビットくんに並んでお詳しいひらいくんからご提供いただいた、プログラミング不要でid_tokenを知ることのできる方法をご紹介します。

まず、Chromeでalisサイトにログインし、右クリックして「検証」をクリックします。

Content image

なにやらカッコいい画面が表示されるので、上部のApplicationタブをクリックします。

Content image

左側にStorageが表示されます。その中のLocal Storageをクリックし、https://alis.toをクリックします。

左側のKeyの中から、idTokenと末尾についているものをクリックすると、画面の下側にやたら長い英数字の文字列が表示されます。それがid_tokenです。

Content image

めちゃ簡単ですね!!!


Content image

【おわりに】

今回は以下の点についてご紹介しました。

1. MacでPython環境構築(記事の紹介)
2. pipコマンドでのalisモジュールのインストール
3. ハッカー部トークン(AHT)入手のためのid_token取得方法
4. プログラミングなしでのid_tokenの獲得方法(ひらいくんご提供)

pipコマンドでインストールできるようになり、APIクライアントを使うハードルを下げることができたかなと思います。次回以降の記事で、具体的な使い方をご紹介しようと思います。
ALISの中でもpython使う方結構増えたような気がしますので、ご参考になれば嬉しいです。


Content image

記事書いた人:ホーさん@ALISハッカー部(@hoosan16

画像素材(フリー):http://www.wanpug.com/


公開日:2018/10/10
獲得ALIS:56.34
ホーさん's icon'
  • ホーさん
  • @fukurou
Python/JavaScript

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

「ハッシュ」とは何なのか、必ず理解させます

Like token Tip token
0.10 ALIS
Eye catch
ゲーム

ドラクエで学ぶオーバフロー

Like token Tip token
30.10 ALIS
Eye catch
クリプト

ブロックチェーンの51%攻撃ってなに

Like token Tip token
0.00 ALIS
Eye catch
他カテゴリ

ALISのシステム概観

Like token Tip token
5.00 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
クリプト

スーパーコンピュータ「京」でマイニングしたら

Like token Tip token
1.06k ALIS
Eye catch
クリプト

Bitcoinの価値の源泉は、PoWによる電気代ではなくて"競争原理"だった。

Like token Tip token
159.32 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
他カテゴリ

機械学習を体験してみよう!(難易度低)

Like token Tip token
69.82 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
テクノロジー

オープンソースプロジェクトに参加して自己肯定感を高める

Like token Tip token
85.05 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS