質問: 以下のようにスプレッドシートを作成後、共有リンクを発行し、それをJavaScriptからAPIを叩いて中身を取得したいと持っています。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/564b8c11fc8a50a1227aba5312c7d5d6.jpeg) 今回叩こうと思っているAPIは以下のAPIです。 ``` https://spreadsheets.google.com/feeds/list/[sheet_id]/[tab_id]/public/basic?alt=json ``` しかし、共有リンクからsheet_idを取得してAPIを叩いても404が返ってきてしまいます。 また、ファイル→ウェブに公開後、同じAPIを叩くと取得できます。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/a9e2ddc44ad8709b5e7e0d89920cd18f.jpeg) こちら、共有リンクを発行しただけでは上記APIを使用することは出来ないのでしょうか。 作成しようとしているアプリケーションとしては以下のことが想定されます ``` 1. 共有リンクは様々なユーザーから送られてくる 2. ウエブに公開することは出来ない 3. こちらでは共有リンクを入力するフォームからsheet_idを抜き出し、APIへアクセス 4. 返ってきたデータからアプリケーションを実行 ``` と言った感じです。 共有リンクからどうにかして中身を取得するAPIはないのでしょうか。 よろしくお願いいたします!
回答: sheet APIのv4の機能を使うことで解決しました。 具体的にはGoogleのdeveloperAPIからkeyを取得し、 ``` https://sheets.googleapis.com/v4/spreadsheets/[sheet_id]/values/[tab_name]!A:B ``` にgetでリクエストを送ることでデータを取得できました