GAPIで「No permission to add media items to this album.」エラー

2020年10月27日火曜日

GAPI Javascirpt

t f B! P L

スコープは設定しているのにエラー

Google API Client Library for JavaScriptで、Googleフォトに画像をアップロードする時は、以下のコードのように、mediaItems.batchCreateを使用して登録します。

var restRequest = gapi.client.request({
  'path': 'https://photoslibrary.googleapis.com/v1/mediaItems:batchCreate',
  'method': 'POST',
  'body': {
    'albumId': "AGxxxx....",
    'newMediaItems' : [
      {
        'description': "test batch create",
        'simpleMediaItem': {
          'uploadToken': uploadToken,
          'fileName': 'Sample File Name'
        }
      }
    ],
    'albumPosition': {
      'position': "FIRST_IN_ALBUM"
    }
  }
});

bodyパマラメータにアルバムID(albumId)を指定すると、アルバムにも画像を登録することができますが、その時 「No permission to add media items to this album.」 といったエラーが表示されることがあります。

スポンサーリンク

アプリで作成したアルバムにしか登録できない

原因は、GAPIの権限(scope)不足かと思いましたが、実はmediaItems.batchCreateでは、アプリで作成したアルバム以外には、画像を登録できません。

そのため、ユーザー自身が作成したアルバムや、別のアプリで作成されたアルバムに登録しようとすると、上記のようなパーミッションエラーが発生します。

アプリで、albums.createでアルバムを作成してから、mediaItems.batchCreateでアルバムに登録するという手順であれば、問題なく画像が登録できます。

スポンサーリンク

QooQ