GoogleCloudPlatform
gcp
GoogleSheetsAPI

Google Sheet APIを試す時に詰まったところ

思ったより大変だったので詰まったところをメモ

Google Sheet API使うために必要なものまとめ

  • 承認
  • を得るためにAPIキーまたはOAuth token
  • を発行するためにGoogle Cloud Platformのアカウント
  • を作成するためにクレジットカード

やったこと

公開されてるGoogle Spread Sheetに対して、Google Sheet APIを使って
特定の指定したシートの指定したセルのデータを読むAPIを実行し、結果をjsonで受け取る

流れ

  • とりあえず触ってみる
    1. 公式のチュートリアルを流し読み
    2. 簡単そうじゃん!と喜ぶ
    3. GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{SheetId}!{開始Cell}:{終了Cell}
    4. 403エラーで首をかしげる
  • 必要な手続きの確認
    1. 公式のAuthorized Requestを読む
    2. Google Sheet APIの利用には承認が必要と知る
    3. それには認証情報(API keyまたはOAuth token)が必要
    4. 発行のためGoogle Cloud Platformのアカウントを作ることにする
  • Google Cloud Platformのアカウント作成
    1. Google Cloud Platformにアクセス
    2. googleアカウントでログイン
    3. 「無料トライアル」を開始
    4. 指示に従って登録。悩むところは無いが、クレジットカードが必要
    5. APIちょっと試したいだけなのに、だんだん大仰になってきたな、と物思いに耽る
  • APIキー発行
    1. Google Cloud Platform管理画面にログイン
    2. 左上のメニューから「APIとサービス」> 「認証情報」を選択
    3. ダイアログで「組織ではページを表示できません。 このページを表示するには、プロジェクトを選択してください。」と言われるので「作成」
    4. とりあえずデフォルトのままプロジェクト作成
    5. 認証情報の画面に戻って同じエラーが出てくるので、今度は「選択」(プロジェクトは作成完了まで少しかかる)
    6. ダイアログで「API へのアクセスには認証情報が必要です。使用する API を有効化し~」と言われるので「認証情報を作成」> 「APIキー」
    7. 作成されたAPIキーをコピー `
  • 再挑戦
    1. GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{SheetId}!{開始Cell}:{終了Cell}?key={API キー}
    2. jsonでデータが受け取れるのを確認する
    3. おつかれさまでした

このAPIキーは、警告文にあるように制限がかかっていないので、くれぐれも公開しないようにご注意ください

つまづきやすそうなところ

  • 認証情報が必要というのが見落としやすい
  • SpreadsheetId(Excelのbook)とSheetId(ExcelのSheet)がややこしい
  • Google Sheet APIの説明記事でも、Google Cloud Platformのアカウントについては省略してることも多いので、1から始める人は注意
  • UIが結構頻繁に変わるようなので、Google Cloud Platformの管理画面操作については参考程度に

参考

公式の紹介記事
Google Sheets API v4を適当に叩いて適当にデータをJSONで取得する
Google Cloud Platform のサービスアカウントを作成する(2016年9月版)