LoginSignup
31
18

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-05-08

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

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月版)

31
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
18