GoogleFormで生成したスプレッドシートの値をphpで取得する

はじめに

目次

GoogleFormでスプレッドシートを作成したこれをphpでjsonとして呼び出し、連想配列に格納しようとする過程で試行錯誤したので、ここに記します。

スプレッドシートの値をphpで取得する方法

スプレッドシートをphpで呼び出すためには、2種類の方法があります。一つはSpreadSheetAPIを使う方法、もう一つはスプレッドシートから直接扱う方法です。今回私が作成するものはphpによる書き込みを行う必要がなかったため、後者のものを利用しました。

まずスプレッドシートを共有し、公開設定を行います。これにより他の人がアクセスできる様になる。公開設定は、編集タブから開くことが出来ます。

スプレッドシートを、jsonで取得するには以下のURLから取得できます。作成したスプレッドシートのIDを該当箇所に入れるだけです。

https://spreadsheets.google.com/feeds/list/GoogleスプレッドシートのIDを入力/od6/public/values?alt=json

スプレッドシートのIDは、URLの次の部分です。

https://docs.google.com/spreadsheets/d/GoogleスプレッドシートのID/edit#gid=0

この二つを利用することで、Googleスプレッドシートの中身を読み取ることが出来ます。しかしこれでは、上手く行かない場合があります。私の場合は、GoogleFormによって作成したGoogleスプレッドシートのAPIを入力する際に、同じようにIDを入れるだけではjsonで取得出来ませんでした。その際下記のAPIを入力・ブラウザで検索することで、解消することが出来ます。ここで吐き出されるjsonデータは、Googleスプレッドシートの構成などが書かれているものです。

https://spreadsheets.google.com/feeds/worksheets/{スプレッドシートのID}/public/values?alt=json

このAPIを叩くと次のような結果が得られます。

GoogleSpreadSheet内の情報

上の写真では、わからないと思います。書出しとしては、

{"version":"1.0","encoding":"UTF-8","feed": ...

となっています。これはGoogleスプレッドシートの情報が、書かれているものです。今回の目的であるjsonデータを取得した場合は、

{"rel":"http://schemas.google.com/spreadsheets/2006#cellsfeed","type":"application/atom+xml","href":"https://spreadsheets.google.com/feeds/cells/{GoogleスプレッドシートのID}/{ページを指定するもの。}/public/values"},

となっている行の、GoogleスプレッドシートIDと、ページを指定する部分を抜き出し、jsonを吐き出すAPIに入れることによって、jsonデータが得られます。

以上で、GoogleFormで作成したスプレッドシートからjsonデータを取得する方法についての解説を終わりにします。

最後に

GoogleSpreadSheetAPIを使うより設定することが、手軽にできると思います。ただしデータの書き込みを行いたい方は、GoogleSpreadSheetAPIを使う、もしくは手軽なものであれば今回の様にフォームを使う必要があるでしょう。

コメント

この記事へのコメントはありません。

リスメガネ
管理人:リスメガネ

北海道在住の新しいもの好きの会社員です。

学生時代、子供向けのプログラミング教室でデザイナーとレッスン講師をしていた経験があります。

このブログでは、プログラミングやデザインの作業過程や、作業の中で発生した困りごとの解決方法を紹介していきます。

最近の記事

  1. 【Googleマップ】マイマップで引いた線を編集する方法

  2. 【Chat GPT】Figmaのプラグイン×ChatGPTに関して

  3. 【Adobe Fresco】ピクセルレイヤーとベクターレイヤーの特徴

TOP