PHPとAPIを使用しGoogle スプレッドシートのデータを取得しWebサイトに表示させる

PHPとAPIを使用しGoogle スプレッドシートのデータを取得しWebサイトに表示させてみます。

■環境

・Windows10

・XAMPP 8.0.6

・PHP Version 8.0.6

・Visual Studio Code 1.56.2

■Google スプレッドシートのデータを用意する

PHPとAPIを使用しGoogle スプレッドシートのデータを抜き出しWebサイトに表示させてみますが、その前にGoogle スプレッドシートを作成し、データを記入します。

今回は「Users」というタイトルのGoogleスプレッドシートを用意しました。スプレッドシート内には、データとして、「name」や「email」といった情報を記入しています。

■Googleスプレッドシートをウェブに公開

Google スプレッドシートのデータが用意できましたので、このスプレッドシートをウェブに公開します。

ウェブに公開する際は、Google スプレッドシートの上部メニューの「ファイル」をクリックします。クリックすると「ウェブに公開」という項目がありますので、こちらをクリックします。

クリックすると、「ウェブに公開」というポップアップが表示されますので、「リンク」の「ドキュメント全体」-「ウェブページ」と設定し、「公開」ボタンをクリックします。

クリックすると、「Googleドライブ」というポップアップが表示され、「この選択を公開してもよろしいですか?」と質問されていますので、「OK」ボタンをクリックします。

クリックすると、「ウェブに公開」というポップアップ内の「リンク」の「公開ボタン」が「公開済み」と表示され、URLが発行されます。これでGoogleスプレッドシートがウェブに公開されました。なお、「ウェブに公開」という設定を行わないと、Google スプレッドシートのデータを取得することができません。

■PHPファイルを作成する

公開後、Google スプレッドシートのデータを抜き出しWebサイトに表示させてみますので、今回はPHPで簡単なWebサイトを作ってみます。コードエディタ(Visual Studio Code等)を開き、コードを書いていきます。

■コード

<?php
$result=file_get_contents('https://spreadsheets.google.com/feeds/list/******/od6/public/basic?alt=json');
$arr=json_decode($result,true);
$data=$arr['feed']['entry'];
?>
<table>
    <tr>
        <td>No.</td>
        <td>Name</td>
        <td>Email</td>
    </tr>
    <?php
        $i=1; 
        foreach($data as $list){
            $str=$list['content']['$t'];
            $arr=explode(",",$str);
            $emailArr=explode(":",$arr[0]);
            echo "<tr>
                <td>$i</td>
                <td>".$list['title']['$t']."</td>
                <td>".$emailArr[1]."</td>
            </tr>";
            $i++;
    }
    ?>
</table>

今回は、file_get_contents()関数を使用し、URLの情報を取得します。取得する情報は、Google Sheets APIを利用し、今回用意したGoogleスプレッドシートのデータです。

https://spreadsheets.google.com/feeds/list/******/od6/public/basic?alt=json

取得する際は上記のURLで取得します。「*******」の部分は、spreadsheetId(スプレッドシートID)を記入します。spreadsheetId(スプレッドシートID)は、Webブラウザで、Google スプレッドシートにアクセスした時に、アドレスバーに表示されています。(Google Sheets API:https://developers.google.com/sheets/api/guides/migration

ちなみに今回はURLから情報を取得しますが、URLの末尾に「?alt=json」と記述し、JSON形式でデータを取得します。

JSON形式で取得したデータを、json_decode()関数でデコードします。デコードしたものの中から、Webサイトで表示する「name」と「email」を取り出します。その後、foreach文とecho文を使用し、Webサイトで表示させます。

■実行

では、このスクリプトを「s_test.php」という名前で保存し、実行させてみます。

実行してみると、PHPとGoogle Sheets APIを利用し、Googleスプレッドシートのデータを取得し、Webサイトに表示させることができました。

コメント

タイトルとURLをコピーしました