先日ALISのAPIが発表されたと知って面白そうだな~と思っていたら結構な日数が立ってしまってました。
すでにいろんな方が解説記事を上げていますね!
ALISハッカー部というのもあるんですね。
(DISCORD入ってみましたが、まだこっそりのぞき見してるだけです...笑)
遅くなりましたが自分もやっと手を付けることができました。
どんなことができるか気になっていたのですが、基本的に画面からできることと同じことはできそうですね。ALISのクライアントアプリ作ったりはできるのかも。(あまり面白くはないですが...。)
検索系のAPIがないか期待してましたが無いみたいですねぇ。
ALIS公式の検索機能の実装を心待ちにしています。
さて、本題ですが、APIの一覧を眺めていて認証が必要な/me系のAPIを使うにはどうしたらいいのか気になったので記事を書いてみました。
公式のドキュメントは見てみましたが特に記載部分を見つけられなかったです。
どこかにあったらごめんなさいm(__)m
DISCORDとかで議論はされてるのかもですかね。(ちょっとそこまでは探せてません。)
ということで、Chromeの開発者ツールとかで調べた結果をメモします。
認証系のAPIは見当たらなかったのですがあるのでしょうか?
ALISのログインではAWSが提供している認証サービスAmazon Cognitoを使っているみたいです。なんかその辺のAPI調べればプログラムからログインできるかもですが、詳細までは調べてないです...。
こういうREST APIを試すときはChrome拡張のRestletというアプリが便利なのでいつもお世話になっています。
さて、/me系のAPI、例えば/me/infoとかを試そうとするとドキュメントの通りやると
{"message":"Unauthorized"}
と言われちゃいます。
公式のドキュメントでは/me/infoのパラメータは"No parameters"と書いてますが、実際にALISにログインした後にマイページへアクセスした時などの通信をChrome開発者ツールなどで見ると
Authorizationヘッダーがついています。値は認証した時にAWSから返ってきたAccessTokenです。
ので、/me/infoのリクエストにAuthorizationヘッダーをつけてアクセスすると、
{
"self_introduction": "プログラマー、CGアーティスト。今はEthereumを使用したシステム開発をしています。Twitter: https://twitter.com/core_aoi",
"user_display_name": "aoi",
"user_id": "aoi"
}
みたいなレスポンスが得られました。
他の/me系のAPIも同様に実行できます。
/me/articles/{id}/pvで記事の閲覧数が取れると書いてあります。
記事の閲覧数は画面では表示されていないので期待しましたが結果は何も返ってきませんでした(;´・ω・)残念。
APIが公開されたことで夢が広がりますね~。今後の機能追加に期待です。