Google SheetsにJavascriptからアクセスするときに警告が出るようになった件

Access to Google Sheets data from this web page will soon start failing.  For information on fixing this, see https://g.co/sheets/3p-auth-changes.

詳細情報が記載されているリンク先はこちらになっています。

http://googleappsdeveloper.blogspot.jp/2016/08/enhanced-third-party-access-protection.html

(日本語版)http://googledevjp.blogspot.jp/2016/09/enhanced-third-party-access-protection.html

Google Spreadsheetのコンテンツへアクセスを要求するときに明示的な承認が必要となるとのこと。

多くの開発者にとってはこの変更は透過的ですが、スプレッドシートのデータを読み込むには変更を加える必要があるようです。

2016年9月14日

からこの要件が適用開始になるとのことです。

変更内容の詳細はこちらに載っているようです。

https://developers.google.com/chart/interactive/docs/spreadsheets#authorization

Google Developer ConsoleからClient IDを発行する

  1. Google Developer Consoleから新しいOAuthのClient IDを作成する。
  2. アプリケーションタイプに「Web application」を選択する。
  3. わかりやすいように任意の名前をつける。
  4. 承認済みの JavaScript 生成元にドメイン(テストドメイン含む)を追加する。
  5. リダイレクトURIを空にする。

作成後の画面に表示される「Client ID」を控えておきます。「client secret」は不要なようです。

OAuth認証を取得するためにサイトを更新します。

gapi.authライブラリを使うと楽なようです。

大きく変わる箇所としては

new google.visualization.Query(url);

に渡すURLに

+'&access_token=' + encodeURIComponent(gapi.auth.getToken().access_token);

が加わる箇所のようです。