見出し画像

SHOWROOMでギフトを画面に降らせるまで4(2020.8.19)

1. 概要

このnoteは、virtualSHOWROOMERの東雲めぐちゃんのように、SHOWROOMの配信中にもらったギフトを主の後ろに降らせたい!という想いのもと、プログラミング初心者がなんだかんだしたメモです。(この内容はSHOWROOMで配信しています。)

画像1

↑完成イメージ図 
東雲めぐちゃんSHOWROOMアーカイブ(10:56~15:44あたり)

めぐちゃんのところがバーチャルじゃない人になるイメージ...

詳しくは前回の記事をご覧ください。

2.本日やったこと

前回はrequestsというライブラリを使って、SHOWROOMのAPIにgetリクエストを送って、結果を返してもらうということをしました。

スクリーンショット 2020-08-06 18.01.48

ただ、返ってくるデータがただのテキストデータの羅列(上図参照)だったので、今回は必要なデータだけを整形して出力することをしました。取り出したいのは、SHOWROOM APIのギフトログ(gift_log)の以下の要素です。
・gift_id(ギフトID)
・name(ギフトを送ってくれたユーザー名)
・created_at(ギフトを送ってくれた日)
・num(ギフトの数)

まずは、今まで対話モードでリクエストを行っていた物を、ファイルに書き込むことにしました。

import requests

url1 = 'https://www.showroom-live.com/api/live/gift_log?room_id=*******'
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}
r = requests.get(url1,headers=headers)
r.text

その後、テキスト形式で出力していたものをjson形式で出力することにしました。

最終行
r.textr.json

getリクエストで返ってきたjsonデータは以下のような形で、辞書型のvalueの部分が配列になっていて、かつその配列の内部が辞書になっているという構造でした。

スクリーンショット 2020-08-16 17.52.40

なので、まずは最初のvalueの部分をそれぞれ要素として取り出してあげるためにforループで回しました。a_giftに上の画像の赤いvalueを一つずつ入れてあげるイメージ

(すみません、gift_logの画像を撮り忘れてしまったので上記の画像はgift_listの結果です。下のコードの"gift_log"が上のコードでいう"enquete"の部分です。)

for a_gift in json_log['gift_log']:
   pprint.pprint('name:{}'.format(a_gift['name']))
   pprint.pprint('gift_id:{}'.format(a_gift['gift_id']))
   pprint.pprint('num:{}'.format(a_gift['num']))
   pprint.pprint('created_at{}').format(a_gift[created_at])

その後、文字列メソッドstr.formatを使って出力したい要素を一つずつ書き、printしました。

スクリーンショット 2020-08-19 15.25.31

こんな感じでnameからcreated_atまでをワンセットとして、出力することができました。


3. 次回やりたいこと

今は、created_atの部分がunixtime(コンピュータが理解できるように表現された時間?)になっているので、これを人間が理解できる時間表現に変えたいと思います。

また、gift_idだけでは直感的に何のギフトが送られてきたのかがわかりづらいので、APIのgift_listからgift_nameを表示させたいと思います!

だんだん完成に近づいてるのが嬉しい!頑張るぞ!


4. ちょっと休憩...(note限定写真)

今回からnote限定写真を公開していきたいなと思います♡

これから、showroomやってる裏側写真とか大好きなパンと一緒に写ってる写真とか昔の写真とか....

公開していくつもりなのでよかったら応援の気持ちで見てください

ここから先は

255字 / 2画像

¥ 100

この記事が気に入ったらサポートをしてみませんか?