ALIS APIで学ぶ初めてのPython
(タイトル画像原画作 https://twitter.com/alpha_illust)
すでにALISが始まって1年半が経過しようとしています。ALISは独自通貨を活用した日本発のブログメディアです。記事にいいねをつけることにより推薦効果と推薦した報酬が読者に手渡されます。また同時に書き手もいいねや投げ銭により利益をえることができます。
この人間同士のやりとりを活用してメディアとしての質を高めていこうとしているのがALISなのです。
2018年にシステムがスタートしたばかりなのでどのメディアよりも構造が斬新で、最近流行のサーバーレスにてシステムは構築されています。驚くべきことにこれまでサービスが停止したところに遭遇したことはありません。
驚くべき運用レートであろうかと思います。このシステムでは完全なサーバーレス構成をスマートに構築するためにほぼ全ての機能をAPI化し、フロントエンドと呼ばれる(まあこの画面です)ブラウザーの画面からサーバーにデーターの要求を飛ばして動かしています。
また、そのAPIをリリースとほぼ同時に公開をしてくれたおかげで、APIをさわれる人たちが面白いおもちゃとして活用をしていました。
つまり、APIを活用してPythonを覚えちゃおうという企画です
こちらの講座の主な部分は下記のYouTubeにて私がコードを書きながら説明をしています。動画から学びたい人もバッチリ!
APIってなんだろう
まずAPIについて説明していきましょう。APIの言葉の意味がわかればだんだんわかってきます。IT用語の略語はできればなんの意味を持つのかを自分で調べて理解するのがいいです。人間の脳は意味づけされたことを覚えやすいように作られています。
APIは Application Programming Interface という名前です。これはプログラムという言葉が付いているように人間様のためのインターフェイスではありません。コンピュータのためのインターフェイスです。
人間の使っているWEBブラウザの操作系は実はコンピュータどうしのやりとりでは使いにくいです。人間様とコンピュータのプログラムでは効率的なコミュニケーションの方法が違うわけですね。
このAPIの使い方やアクセスの方法はある程度おなじような方法を取る形に収まってきており、APIを使ったデータの取得は10年前に比べて格段に良い環境となってきています。
この結果WEB系のコンテンツどうしの繋がりが密になり、人間どうしがSNSで繋がったかのようにプログラムどうしはゆるやかな繋がりを形成し世界にひろがっている様子を感じています。
では、 ALIS APIとは何でしょう。
ALISは極端にサーバーレスを推進していてそれぞれのパーツを繋ぐのにAPIをサービス自身で使っています。その常にサービスで使っているAPIを提供いただいており、比較的自由度が高い素晴らしい環境です。
ALIS APIをさわってみよう
では早速APIを触ってみましょう。必要なものはWEBブラウザーのみです。今後APIを触るのであればGoogle Chromeが何かと便利なのでお勧めします。
https://alis.to/api/articles/recent
こちらのURLをブラウザーに入力してみてください。すると下記のような画面が出るはずです
少し読みにくいので少しツールを使って見やすくしてみましょう。
このAPIコマンドは最新の記事をリストアップします。上記は1記事分の結果を取り出しものですね。これが20記事分並んでいるわけです。多くのALISのサードパーティのアプリでこのコマンドは多用されているわけです。
この {} や[]で囲まれてデータを表現する方法をJSON形式と呼びます。
ちなみにJSON は JSON (JavaScript Object Notation) の略でJavaScriptと呼ばれるWebの世界を構築しているプログラミング言語の一部としてうまれました。
JavaScriptで使用するオブジェクトの表記法というなんの工夫もないストレートな名前です。あまり気にせずに名前つけたら思わず大ヒットしてしまった例ですね。略語は人の名前みたいで可愛いですよねw
話は戻りますが、この結果を出力するのに使用したのが下記のコマンドになります。よくみてくださいとても簡単ですね。
この系統のコマンドには下記のものがあります。想像つきますよね。コマンドを使い分ければ好きなデーターが簡単に手に入ります。
https://alis.to/api/articles/popular
https://alis.to/api/articles/popular
https://alis.to/api/articles/recommended
APIというと高度なプログラミングをしないとデーターを取り出せないと思いきや、簡単にデータがとりだせることが今日わかったかと思います。
ということでここからはPythonを使ってAPIを使ってみようと思います。でもなんでPythonをお勧めするのかも少しお話します。
なぜPythonなのか
今とても人気な言語なのです。そのわりにはプロでも使える機能もしっかり持っているので超絶お勧めです。あと本当に読みやすい。これ以外の言語には初心者が目を丸くするものが多くありますので。
個人的にはJava Script(Node)も汎用性が高いのでお勧めです。僕の運営しているサービスは、PythonかJava Script(node)で構築しています。この2言語あればほぼ全てこなせます。
Pythonの環境を準備する
次に、Pythonを使える環境をみなさまにご紹介します。すでにPythonの環境をお持ちの場合は、次の章を読み飛ばしてくださ
今回は環境が構築されているオンラインのツールを使って一緒にやりましょう。
その中でも、Google Colaboratoryは、ブラウザー上でPythonがすぐに使える環境で一番便利です。
このサービスは機械学習用に用意されていて、プロフェッショナルサービスなんですが、僕らの使うレベルでは無料で使えちゃいます。本当にありがたい
Google Driveにアクセスしてください。ブラウザで下記のアドレスに行けばOKです。https://drive.google.com/drive/my-drive
上記のメニューでアプリを追加を発見して押してください
上記の絵はすでに接続済みになっていますが、赤で囲ったところに接続ボタンがあるはずなのでおしてくださいね。
接続をすると使用準備が完了します。Googleすげえ
これで準備完了です。下記のようなGoogle Colaboratoryの画面が出ていると思います。
忘れないうちに左上の名前をわかりやすくかえておいてください。たとえば alis_api_practice.ipynb 最後のipynbは変更しないようにしましょう。Google Driveからアクセスするときに困ってしまいます。
Collaboratoryのオススメ設定
ツール → 設定 から行けます
個人の好みなので合わせる必要はありませんが、いろいろ変更してお好みのパターンをみにつけましょう。
エディターのインデント設定は4を強く推奨します。プログラムもみやすいですしPythonの一般設定は4だと理解しています。初期設定の2はいけてないですね。
インデントはタブキーを押した時に挿入されるスペースです。これにより各行段組が決まります。
この段組は、Pythonプログラムにとってブロックの区切りを意味し、この段組を間違えるだけで動作が全く違ったものになります
準備ができました。さて行きましょう。
ALIS APIをPythonからつついてみよう
ではまず下記のコードを入力してみましょう。三角マークの横のエリアに自分の手で打ってみてください。コピペでもいいですが、多分自分で打ち込むことによって、プログラミングの能力は上がりやすくなります。
一度理解したらコピペでもいいです。書いていると候補の言葉も出してくれるし、エディターが以外に助けてくれるなと感心できるはず。
import requests
response = requests.get("https://alis.to/api/articles/recent")
print(response.text)
さてできましたか?
ではエディター左の三角のプレイボタンを押しましょう。するとこんな答えが出てくるはずです
そうです。最初に行なったブラウザに直接入力した答えが画面に答えとして帰ってきます。
おめでとうございます。あなたはとうとうAPIをPythonからコントロールして情報を取得することに成功しました。世界の0.01%以下の人しかやったことがないこと経験した瞬間です
世界が広がることを保証します!!
実用的なプログラムを一緒につくってみよう
いろいろ悩んだんですが少し地味ですが、好きな人の記事一覧を作ってみましょう。みなさんたまに記事発掘を一生懸命行なってるのを拝見しますが、Pythonの技を身につければそういう活動もとても楽になります。
今日の成果物はこちら
好きなALISのライターの記事を全ぶっこぬき。これをやりましょう。ここまでできれば、あとは好きなパラメータを追加したり解析をこのスプレッドシート上で行うことも可能になります。
では始めましょう。
ステップバイステップでいきます
まずは好きな人の記事の取得を行います。好きな人のIDをまずはしっかり認識しましょう。ここでは、大人気ライターの彼女
記事の下のクレジットや彼女の記事のURLに注目してください。
MariSaita
これが彼女のIDです。覚えておきましょう。では行きます。
import requests
import json
from datetime import datetime
user_id = 'MariSaita'
url = f'https://alis.to/api/users/{user_id}/articles/public'
response = requests.get(url)
data = json.loads(response.text)
for article in data['Items']:
print(article['title'], article['created_at'])
こちらをエディター部分に書き込んでください。コピペしてもらってもかまいません。
そして実行を押すと下記の結果がでてきます
ではここから絶対にあなたが理解できるように説明します
--- ここから有料 ---
ここから先は
¥ 940
この記事が気に入ったらチップで応援してみませんか?