0

次のコードを実行すると、このエラーが発生します。

{'エラー': {'コード': 400、'メッセージ': '無効な JSON ペイロードを受け取りました。不明な名前「album_id」: プロト フィールドが繰り返されていないため、リストを開始できません。 , 'fieldViolations': [{'description': '無効な JSON ペイロードを受け取りました。不明な名前「album_id」: Proto フィールドが繰り返されていないため、リストを開始できません。'}]}]}}

"albumId": ["albumid code"] を削除すると、正常に動作して戻ります

新作10点、計10点

def _actually_list_media_items(session):
    ret = []
    params = {
        'fields': 'mediaItems(id,baseUrl,filename,mimeType,productUrl),nextPageToken',
    }
    search_json = {
        "pageSize": 10,
        "albumId": ["<albumid code>"],
        "filters": {
            "includeArchivedMedia": False,
            "contentFilter": {
                "excludedContentCategories": [
                    "DOCUMENTS",
                    "RECEIPTS",
                    "SCREENSHOTS",
                    "UTILITY",
                    "WHITEBOARDS",
                ]
            },
            "mediaTypeFilter": {
                "mediaTypes": [
                    "PHOTO",
                ],
            },
        },
    }

    tmp = 0    
    while tmp < 1:
        rsp = session.post(
            'https://photoslibrary.googleapis.com/v1/mediaItems:search',
            params=params,
            json=search_json,
        ).json()
        if 'error' in rsp:
            print(rsp)

        cur = [m for m in rsp.get('mediaItems', [])]
        ret += cur
        print(f'{len(cur)} new items, total {len(ret)}')

        pageToken = rsp.get('nextPageToken')
        if pageToken is None:
            break
        params['pageToken'] = pageToken
        tmp = tmp + 1
    return ret
4

2 に答える 2