Google Picker APIでアップロード出来ない時

Google Apps ScriptにてGoogle Picker APIを利用しているのですが、ファイル選択は問題なさそうなのに「ファイルのアップロード」に関しては、「すべてのファイルをアップロード出来ませんでした。。」というエラーが出てアップロード出来ない現象が発生しています。

Picker APIをGoogle Apps Scriptで利用するには以下のエントリーを参考にしてください。

Google Picker アップローダを作る【GAS】

図:こういうエラーが出る


概要

過去にもGoogle Picker APIはコードを変更していないのに、ロードが出来なくなったり、Googleの担当エンジニアがチョンボを起こして使えなくなったりと結構いろいろやらかしてるAPIなのですが、今回の現象は「Google Driveに対するファイル作成アクセス権限が無い」が為に引き起こされてるようです。

正しい認証画面はGoogleドライブのすべてのファイルの表示、編集、作成、削除の権限要求がされます。

間違ってる認証画面は、Googleドライブのすべてのファイルの表示とダウンロードしか権限要求されません。

図:正しい認証画面

図:間違ってる認証画面

修正方法

修正方法は、こちらのIssue Trackerでも提示されているように、G Suiteのアクセストークンを取得してHTML側へ返す関数に対して、コメントアウトの形でDriveApp.addFile("test")といったコードを追加する事。コメントアウトされていても、アクセス権限要求対象に入るので、これで問題なく動作します。

HTML側はこのTokenを使って、Picker APIに渡してcreatePickerを作成するので、権限がないとアップロードを拒否されてしまうというわけです。

要注意事項

既に開発者にはメールで来ていると思いますが、来年2021年3月31日をもって、Google Picker APIは少し変更が加わるようです。変更の対象になるのは

  • Googleフォト
  • Google Maps
  • Youtube
  • Google画像検索
  • Googleビデオ検索
  • Webカメラビュー

であり、これらに対して、Picker APIにて、ImageSearchView、MapsView、PhotoAlbumsView、PhotosView、VideoSearchView、WebCamViewを使って画面を生成している場合には、最新のAPIの仕様に従って変更をしなければならないようです。以下原文

Hello Google Picker API developer,

We are writing to let you know about upcoming changes to the Google Picker API. We are contacting you because you use one or more apps connected to the Google Picker API.

What do I need to know?

Starting March 31, 2021, the Google Picker API will no longer support views and interactions with the following Google services:

  • Google Photos
  • Google Maps
  • YouTube
  • Google Image Search
  • Google Video Search
  • Webcam view (to record videos or take photos using a web camera).

The Google Picker API integration with Google Drive will remain unchanged and your application will continue to operate.

What Action do I need to take

If your applications use the Google Picker API integration for any of the services listed above, you will need to migrate your existing Picker integration to our modern APIs targeted for each specific application:

  • Photos API
  • Maps API
  • YouTube API
  • Custom Search API (supports Image & Video Search)

How do I know what Apps are affected?

Apps are affected if they use one or more of the following views: ImageSearchView, MapsView, PhotoAlbumsView, PhotosView, VideoSearchView, WebCamView.

Apps that currently have the Google Picker API enabled in the Google Cloud Platform console are listed below, up to 10. If you have more than 10 such apps, see the attached file. Please be sure to check for each one whether the app will be affected and migrate accordingly.

We’re here to help

If you have any questions or require assistance, please contact G Suite Support referencing this tracking number () or post a question in Stack Overflow using the google-picker tag.

Sincerely,

The Google Picker Team

関連項目