環境
macOS Mojave version 10.14.6
python 3.7
問題
シート名を変更するリクエストを送信するが、JSON payloadで上手くいかない
エラーコード
HttpError 400 when requesting https://sheets.googleapis.com/v4/spreadsheets/<spreadsheet_id>:batchUpdate?alt=json returned "Invalid JSON payload received. Unknown name "": Root element must be a message.". Details: "[{'@type': 'type.googleapis.com/google.rpc.BadRequest', 'fieldViolations': [{'description': 'Invalid JSON payload received. Unknown name "": Root element must be a message.'}
該当コード
Python3
1import json 2from oauth2client.service_account import ServiceAccountCredentials 3from googleapiclient import discovery 4 5scope = ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive'] 6credentials = ServiceAccountCredentials.from_json_keyfile_name('<SPREAD_SHEET>.json', scope) 7service = discovery.build('sheets', 'v4', credentials=credentials) 8SPREADSHEET_KEY = '<SPREAD_SHEET_KEY>' 9 10json_apply = { 11 "requests": [{ 12 "updateSheetProperties": { 13 "properties": { 14 "sheetId": 0, 15 "title": "newName" 16 }, 17 "fields": "title" 18 } 19 }] 20} 21json_apply = json.dumps(json_apply) 22request = service.spreadsheets().batchUpdate(spreadsheetId=SPREADSHEET_KEY, body=json_apply) 23request.execute()
やったこと
json_applyの中がおかしいと思うのですが、同じ形式で公式リファレンスのサンプルで試すと、ちゃんと送信されます。
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate
お力をいただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。