01 July 2018

Google Apps Script の OAuth エラー

Google Sheets を自動更新していた Google Apps Script が以下のエラーで動かなくなっていた。

The OAuth identity of this script has been deleted or disabled. This may be due to a Terms of Service violation.

このスクリプトの OAuth ID は削除されたか、無効になっています。利用規約違反が原因である可能性があります。

OAuth Error - script deleted or disabled - Stack Overflow を参考に、結論としては、スクリプト (プロジェクト) を作り直すと解消した。

  • スクリプトをローカルなどに一旦退避させる (コピペなどで)。
  • スクリプトエディタからプロジェクトを削除する。
    • ファイル > プロジェクトを削除
  • スクリプトエディタを開き直し、新しいプロジェクトを作成する。
  • スクリプトの内容は先程退避させた内容をコピペする。

この問題の原因は、スクリプトが紐付いている Cloud Platform プロジェクトや呼び出している拡張サービスになにかの変更や問題、例えば Term of Service に更新があり同意が必要など、があったことらしい。なので普通は個別にそれらの対応をしたほうが良い。ただしエラーメッセージからは具体的にどこが原因かはわからず、また今回は試行錯誤しても解消しなかったので、手っ取り早くプロジェクトを作り直した。このへんを個別に確認するには以下の手順となる。

  • スクリプトエディタを開く
  • リソース > Cloud Platform プロジェクト
  • 紐付けられている Cloud Platform プロジェクトを開く
  • 規約同意などの画面が出ると思われるので、同意する
  • 解消しなければ リソース > Google の拡張サービス から使用しているサービスの部分を確認しても良いかも