uniface.hub

uniface.hub

ユニフェイスの開発者ブログ


Title APIを利用してデータを取得しよう#01
  • 2022年5月20日
  • h_h
APIを利用してデータを取得しよう#01

始めに

世の中はサービスが溢れています。
例えば、TwitterやInstagram、YoutubeなどもSNSもサービスに当たります。
日頃このようなサービスを使用していて、データを取得して利用できたらいいのにと思ったことはありませんか。
具体的な話をすると
・Twitterでフォローしてくれた人の特定のキーワードを発言をしているtweetにいいねをする
・Instagramでキャプションの@Mentionをリッスンして返信する
・youtubeの特定のキーワードが入っているタイトルで1000回以上再生されているものだけを取得する

多くのSNSのサービスはWEBAPIを通じデータを取得することができます。
WEBAPIの使用方法はどれも同じです。
やり方が分かれば、他のサービスからも情報を取得できるようになるでしょう

今回はYoutubeやTwitterなどは、多数の解説されたページが存在するので、
[Steam]を題材にAPIを解説します。

Steamとは、ゲームを購入する際に利用するアプリです。
iphoneだとAppStore、AndoroidならGooglePlayをイメージすると良いかと思います。
違いとしては、ゲームに特化した機能を提供しています。

uniface.hubでもspotifyからデータを取得して、ランキングにして表示している記事があります。
https://hub.uni-face.co.jp/spotify-api/

APIを調べる

サービスから情報を取得したいと考えた場合、最初に[API]が公開されていないか確認します。
ここで、[API]ってなんだろうとGoogleで検索すると、小難しい説明が・・・。
https://www.google.com/search?q=API

要約すると、下記の2点をまとめた物
・欲しいデータを取得する方法
・行える操作(いいねを付ける、動画にコメントする等)

まずは、SteamがAPIを公開しているか確認します。
公開されているか確認する方法は色々ありますが、一番簡単方法はGoogleで検索することでしょう。
[steam api]で検索します。
https://www.google.com/search?q=steam+api

検索結果を見ると、一番上がAPIの詳しい仕様が書かれた公式ホームページ、そしてSteam apiの使い方が解説されたページがありました。

検索結果から分かることは二つです。
・SteamはAPIを公開している。
・SteamのAPIの解説サイトがある。

公式ホームページに書かれた[API]を理解して、欲しいデータを取得する方法を読み解く必要があります。
https://partner.steamgames.com/doc/webapi_overview?l=japanese

これを読み解くと、
会員登録を行ってください。
URLにアクセスすれば、URLに応じて情報を文字で返します。後は好きに加工してください。
これがURLの一覧です。欲しい情報に応じてURLを選択してください。
URLには適時パラメータを付加してください。
https://partner.steamgames.com/doc/webapi

URLにパラメータ?

URLの仕組み

URLはホームページを見る時に入力する文字列です。
https://uni-face.co.jp/
この文字列がどのホームページを表示するかを決定します。
URLはアクセス先の情報と、パラメータ(値)を追加することが出来ます。
パラメータ(値)を使用して、同じページでも表示する内容を変更することが可能です。

例えば、Youtubeではパラメータを追加することで指定した動画を表示しています。
パラメータに動画ID[COoKRYk-HWU]を設定したURLは下記になります。
若かりし頃のヒカキン
https://www.youtube.com/watch?v=COoKRYk-HWU
パラメータに動画ID[s3cl2Tq5YHk-HWU]を設定したURLは下記になります。
最近のヒカキン
https://www.youtube.com/watch?v=s3cl2Tq5YHk

?以降がパラメータになります。v=動画IDを指定することで、指定した動画を表示します。
youtubeには、指定した秒数から再生する機能がありますが、これもパラメータを利用しています。
二つ以上の付加情報を追加する場合は[&]で繋げます。
他の従業員がたどたどしく踊る中、一人だけ妙にキレがいい志摩スペイン村の従業員
https://www.youtube.com/watch?v=qwXzqlCtioo&t=68s

1行だと分かりづらいので、区切り文字[/、?、&]で改行をいれてみます。

https://
www.youtube.com
/watch
?
v=qwXzqlCtioo
&
t=68s
www.youtube.comの             (www.youtube.com)
watchというコンテンツが見たい (/watch)
ここからがパラメータで        (?)
vの値がqwXzqlCtioo            (v=qwXzqlCtioo)
それと、                      (&)
tの値が68s                    (t=68s)

これをYoutubeは解析してvは動画ID、tは再生開始の秒数
解釈してページを表示しています。

vやtはパラメータ名です。これはYoutube側が決めています。
パラメータは複数渡すことが出来ます。
何がどのパラメータか分かるようにするために設定しています。

ブログで使用したURLです。パラメータがどれかというのが分かるでしょうか。
https://partner.steamgames.com/doc/webapi_overview?l=japanese
(japanasesをspanishに変更すると?)
https://www.google.com/search?q=steam+api

次回は実際にAPIからデータを取得します。