【PHP】じぶんコインAPI入門編①

Web系の技術力向上作戦

Web系ってほんとわかんない。だからやらなーい。ってとりあえず避けてきたんですが、面白そうなAPIが提供されてたら使ってみたいじゃないですか。そこでやっと重い腰をあげて動き出しました。でもですよ、今まで逃げてきたので、何から始めたらいいかわかんない!どうしよう!まじ!ってなってたわけですよ。あたふたあたふた。そんな私なんですがゴールとされるビジョンは明確に想像できてるんです!(多分天才だからでしょうね)まず最初の目標はじぶんコインのAPIをがんばるブログに反映させる!!!!です

PHPの動作環境(ローカル)

実はもうテスト環境は構築しているのです。先日デザインの変更を確認する為に非常に苦労して本番のWordPress環境をローカルに移行したんです!!!!まぁ本当に苦労していたかは別にしてPHPが動作する環境はもう準備済み。私は石橋は叩いて割るほど慎重に行動することに定評がありますので、ローカル環境で試して、おそるおそる割れた石橋を渡っていくという作戦に出ることにしました。

プログラミングの最初といえば当然HelloWorld

■現在のテスト環境
MANP 5.2
WordPress 4.9.8
PHP 7.2.10
MySQL

■テストソース配置場所
/Applications/MANP/htdocs/phptest
■用意したテストソース
index.html

<html>
    <head>
        <title>PHP Test</title>
    </head>
    <body>
        <a href="./helloworld.php">Hello World</a>
    </body>
</html>

helloworld.php

<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <?php echo '<p>Hello World</p>'; ?> 
    </body>
</html>

index.html

helloworld.php

おっけーちゃんと動いてるみたい〜やっぱHelloWorldが動くとテンション上がりますねw

じぶんコインAPI使ってみる!

まずは一番単純そうな枚数の取得ですかね。APIの使い方おさらいしておきます。

がんばる(coinID:ganbarumasu0525)が保持するがんばるコイン(userID:ganbarumasu0525)の枚数を取得してみましょう。

https://crypto-app.tokyo/qCoin/api/api.php?type=coinCount&userID=ganbarumasu0525&coinID=ganbarumasu0525

これで返ってくる値をみておきましょう。ふむふむ数値か文字列かわからないですね。とりあえず受け取って数値チェックとNULLチェックくらいしとけばいいかな?

ついでに、存在しないアカウントを指定した場合と存在しないコインを指定した場合を確認しておきます。どっちも「0」が返ってくるみたいですね。

それでは実験開始です。まずはindex.htmlに新しく作成するcoinCount.phpのリンクを貼り付けておきます。

<html>
    <head>
        <title>PHP Test</title>
    </head>
    <body>
        <a href="./helloworld.php">Hello World</a>
        <a href="./coinCount.php">coinCount</a>
    </body>
</html>

coinCount.phpをhelloworld.phpと同じディレクトリに配置します。さて、どうやってやればいいのかなぁ。グーグル先生お願いしやす!たぶんcURLって関数つかったら値取得できるっぽい。試してみます。

<html>
    <head>
        <title>coinCount</title>
    </head>
    <body>
        <?php 
            //今回IDを固定値で入れてますが汎用性考えると変数とかにしといた方がいいかもですね
            $url = "https://crypto-app.tokyo/qCoin/api/api.php?type=coinCount&userID=ganbarumasu0525&coinID=ganbarumasu0525";
            
            //cURLのセッション初期化
            $ch = curl_init();

            // オプションを設定(コメントはPHPのリファレンスから引用)
            // 取得する URL 。curl_init() でセッションを 初期化する際に指定することも可能です。
            curl_setopt($ch, CURLOPT_URL, $url); 
            // TRUE を設定すると、curl_exec() の返り値を 文字列で返します。通常はデータを直接出力します。
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            //FALSE を設定すると、cURL はサーバー証明書の検証を行いません。 別の証明書を CURLOPT_CAINFO オプションで 指定するか、CURLOPT_CAPATH オプションで 証明ディレクトリを指定します。
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

            //値の取得
            $coinCount = curl_exec($ch);
            
            //test用
            //$coinCount = "test";
            //$coinCount = null;
            
            //値のチェック
            if(is_numeric($coinCount)){
                echo "<p>現在がんばるが持ってるがんばるコインは".$coinCount."枚くらいです!</p>";
            }else{
                echo "<p>なんか値がちゃんと取得できてねぇっす!</p>";
            }
            
            curl_close($conn);
        ?> 
    </body>
</html>

うまく取得できてるみたい!やったね!

ついでにテストで文字列とNULLを入れてみたけどこちらもちゃんと動作してました!数値以外を受け取ることはないと思いますが、ネットワークが不安定だったりすることを考えると、こういうチェックは入れといた方がいいのかもしれないですね。いまいちPHPを把握してないので一般的なのかは不明ですw

感想

はじめてPHPを触りながら実験してみましたがなかなか楽しいですね。これをどうやってブログに組み込んでいくのかは今のところ謎ですが、なんとかなるような気がしてきました。詳しい人がいたら教えて欲しい気持ちがを前面に出しつつ、この記事は終了となります。次回は他のAPI全部試してみたいと思います。PHPでJSON形式ってどうやって扱うんだろう〜たのしみ〜

コメント