DAY37 pixelaというAPIを使ってログアプリを作る!アカウント登録〜ログ記録まで
python再開して更新してみます。
今回はpixelaというAPIを使ってログをとるアプリを作ります。
製作者は日本人なのでget startedも日本語ドキュメントあってやりやすいかと。
アカウントを作成する
最初にアカウントを作成します。
リンク先の始め方だとcurlでの作業なので
pythonの書き方に変換すると、
import requests
pixela_endpoints = "https://pixe.la/v1/users"
secret_code = "tekitounisakuseisitekudasai"
username = "gakpy2"
# アカウント作成する初回だけ
params = {
"token":secret_code,
"username": username,
"agreeTermsOfService":"yes",
"notMinor":"yes"
}
response = requests.post(url=pixela_endpoints, json=params)
print(response.text)
このような感じになります。curlの-dはデータということで、
見てみるとjson形式になっているのでpythonでもparamsと定義したjsonデータに。
requestsモジュールをインポートして、curlの最初にあるとおりpostでresponseをもらう。
そうすると、pythonのコンソールでは同じような返事がテキストできます。
これでアカウントが作成されました。
ちなみにこれは1回だけしか使わないのでコメントアウトしておきます。
2回以上作動させてもこうなります。
グラフを作る
次にグラフを作ります。オフィシャルのcurlでは
$ curl -X POST https://pixe.la/v1/users/a-know/graphs -H 'X-USER-TOKEN:thisissecret' -d '{"id":"test-graph","name":"graph-name","unit":"commit","type":"int","color":"shibafu"}' {"message":"Success.","isSuccess":true}
こんな感じになっているのですが、 -Hというのを検索してみるとpythonではjsonデータとは別にheaderでの設定がいるらしい。
pythonで書くのならこんな感じになる。
params = {
"id":"test-graph",
"name":"study-graph",
"unit":"commit",
"type":"int",
"color":"ichou",
"timezone":"Japan"
}
headers = {
"X-USER-TOKEN": SECRET_CODE
}
response = requests.post(url=f"{PIXELA_ENDPOINTS}/{USERNAME}/graphs", headers=headers, json=params )
print(response.text)
タイムゾーンなどは追加した。詳しくは上記リンク先で。
登録が成功するとマイページはこんなふうになります。
グラフにログを記録する
そしてついにログを記録する方法に。
オフィシャルだとこんなcurlですが
$ curl -X POST https://pixe.la/v1/users/a-know/graphs/test-graph -H 'X-USER-TOKEN:thisissecret' -d '{"date":"20180915","quantity":"5"}' {"message":"Success.","isSuccess":true}
見た感じ結構簡単ですね。
jsonデータは日付と質で、ヘッダーは毎回必ずいるようです。
今日はこの記事を1本書いたということで今日の日付で1を登録してみます。
headers = {
"X-USER-TOKEN": SECRET_CODE
}
params = {
"date": "20220810",
"quantity": "1"
}
response = requests.post(url=f"{PIXELA_ENDPOINTS}/{USERNAME}/graphs/{GRAPH_ID}", headers=headers, json=params)
print(response.text)
となると、
{"message":"Success.","isSuccess":true}で成功となりました。
マイページを見ると…
いろんなところに1が増えています。
これで今日のログ記録は完成しました。
とりあえず登録〜記録まではこんな感じです。
復習してみると思ったより簡単でした。
(なぜいままで躊躇して更新していなかったのか…)