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サイトに表示させることができました。
コメント