LoginSignup
2
1

More than 5 years have passed since last update.

Webページに仮想通貨(BTC)の現在価格をBitflyerのAPIを利用して表示する

Last updated at Posted at 2017-10-24

WebページにAPIを利用

HTMLとCSSと少ーしPHPがわかる状態で初めてのAPIだったので、同じような境遇に再びなったときの自分の忘備録として残します。

※ちなみにWordPressを使っているサイトなのでPHPが使える環境です!

あくまでも自分用なので、色々わかりづらいところもあると思います。
読むのめんどくせ〜って人は下をコピペして使ってください。

sample
<?php 
$base_url = 'https://bitflyer.jp';
$responce = file_get_contents($base_url.'/api/echo/price');
$array = json_decode($responce,true);

 echo("<h3>販売価格</h3><p class='p-ask'>".$array["ask"]."</p>");
 echo("<h3>買取価格</h3><p class='p-bid'>".$array["bid"]."</p>");
 echo("<h3>中間値</3h><p class='p-mid'>".$array["mid"]."</p>")
?>

そもそもAPIが何かわからなかった

ハッカソンとかに出たり、エンジニアの人と一緒にいたりすると「API叩けば良くね?」みたいなワードが出て来ました。
初めての時は「叩くって何!?」ってなるんですけど、私的解釈でいうと
情報や機能をリンクで呼び起こして、自分のサイトやプロダクトで表示・利用するということでした。

また、初めてのときに立ちはだかった壁は、WebデザイナーでHTMLとCSSがわかりますよ〜ってレベルだと、呼び出しても次の処理がわからない。といった点でした。

こっから手順の話

さて本題。とりあえず思いつく順で説明して行きましょう。
まずは、BitflyerさんのAPI一覧のページにアクセスして、どういったことができるのかというのを確認しましょう。▶︎こちらからどぞ

今回は「レート取得」を'叩き'ます。

サイトを見て、認証・リクエスト・レスポンス…何これ?となりましたが、今ならなんとなくわかる。まずはそれぞれの役割を見て行きますか。

:robot: 認証

なし

おそらく、アクセスするための許可証のようなものでしょう。今回はないですね。

:robot: リクエスト

GET /api/echo/price

呼び出す情報を特定するカテゴリー指定の呪文。

箇所
$responce = file_get_contents($base_url.'/api/echo/price');

上記のようにfile_get_contentsで「お前の()内のところからこのデータを引っ張ってきますね」という記述になります。

:robot: レスポンス

{
    "mid" : 41022,
    "ask" : 41812,
    "bid" : 40233
}

呼び出す情報(召喚獣)の表示場所のターゲットとなる、魔法陣。
なお、魔法陣と召喚獣の対応表は以下とのこと。

mid: int型 必須 仲値
ask: int型 必須 bitFlyerの1BTC販売価格
bid: int型 必須 bitFlyerの1BTC買取価格

前後しますが、次は「API共通事項」という箇所を確認して見ましょう。

:robot: エンドポイントURL

エンドポイントURL https://bitflyer.jp/

エンドポイントってのはAPIを呼び出すときにどのサイトから呼び出しますよ〜ってな感じのものでした。

箇所
$base_url = 'https://bitflyer.jp';

コードって何書いたか忘れることが多いので、エンドポイントは名前つけて別枠にしました。

:robot: 文字列の形式指定

APIのレスポンスデータは、特に断りのない場合を除き、 JSON(※1)形式の文字列とします。

JSON…どうしようわからん…
となりましたが、PHPに変換して利用しました。
変換方法はリファレンスにて調べるとわかりますが、それも見つけるまで大変だったよ。

JSONのままではWebページにはレート表示されません!表示できる形に変換する必要があった

なんかこれをデコードやらエンコードやらいうらしいですが、んなもん知らないよ〜ってなったのでここも苦労しました。Google先生ありがたや。

json_decodeというのを利用して、取得した内容をPHPの形式に変換しました。

箇所
$array = json_decode($responce,true);

んで、変換した後はecho()にて$array[]で、[]内にレスポンスで表示したい値の名前を入れれば表示されます。

箇所
echo("<h3>販売価格</h3><p class='p-ask'>".$array["ask"]."</p>");
echo("<h3>買取価格</h3><p class='p-bid'>".$array["bid"]."</p>";
echo("<h3>中間値</3h><p class='p-mid'>".$array["mid"]."</p>")

まとめ

いや〜思いつくままに書いたんで、わかりづらさMAXですネ。
とりあえず、APIを叩く、という作業工程を残せたんで、これで良しとします。

ポイントとしては

  • どこから取得するかを確認
  • なんの文字列形式で返ってくるか確認

ですね。以上。

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1