UdemyでPythonを勉強した結果を残すブログ。

40歳でプログラミング始めて転職までいけるのかを実録してみます。

DAY37 pixelaというAPIを使ってログアプリを作る!アカウント登録〜ログ記録まで

python再開して更新してみます。

 

今回はpixelaというAPIを使ってログをとるアプリを作ります。

 

pixe.la

 

 

製作者は日本人なので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のコンソールでは同じような返事がテキストできます。

 

success

これでアカウントが作成されました。

 

ちなみにこれは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)

 

docs.pixe.la

 

タイムゾーンなどは追加した。詳しくは上記リンク先で。

 

登録が成功するとマイページはこんなふうになります。

 

グラフにログを記録する

そしてついにログを記録する方法に。

オフィシャルだとこんな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が増えています。

これで今日のログ記録は完成しました。

 

とりあえず登録〜記録まではこんな感じです。

復習してみると思ったより簡単でした。

(なぜいままで躊躇して更新していなかったのか…)