Почему «неправильный запрос» в google drive.files.update с использованием Python3.6 в Google Colab Laboratory? - PullRequest
0 голосов
/ 05 мая 2019

Я использую Google Drive API v3 и Python3.6 в Google Colab Laboratory.Я думаю, это ошибка в update_metadata, но я не могу ее найти.https://developers.google.com/drive/api/v3/reference/files/update говорит, что эти свойства доступны для записи.Я застрял, и мне нужна помощь, спасибо.

def NEWshare(selected_id, email, permissions_metadata, emailmsg, send=True):                   
    drive_service.permissions().create(body=permissions_metadata,                                            
    emailMessage = emailmsg,
    sendNotificationEmail = send,
    fileId=selected_id).execute()

def NEWupdate(selected_id, update_metadata):
    drive_service.files().update(body=update_metadata, 
    fileId=selected_id).execute()

permissions_metadata = {
                        "deleted": True,
                        "emailAddress": email,
                        "kind": "drive#permission",
                        "role": "reader",
                        "type": "user"
                       }

update_metadata = {
                   "copyRequiresWriterPermission": True,
                   "writersCanShare": False
                  }

NEWshare (selected_id, email, permissions_metadata, emailmsg, send = True) работает хорошо.Теперь я хочу обновить с помощью NEWupdate (selected_id, update_metadata), но я получаю сообщение об ошибке

HttpError                                 Traceback (most recent call last)
<ipython-input-26-07b373587193> in <module>()
----> 1 NEWupdate(selected_id, update_metadata)

2 frames
/usr/local/lib/python3.6/dist-packages/googleapiclient/http.py in execute(self, http, num_retries)
    838       callback(resp)
    839     if resp.status >= 300:
--> 840       raise HttpError(resp, content, uri=self.uri)
    841     return self.postproc(resp, content)
    842 

HttpError: <HttpError 400 when requesting https://www.googleapis.com/drive/v3/files/1n8k_4fY4KMM9gnqD2MPvvV8cRgY0yCRd?alt=json returned "Bad Request">

1 Ответ

2 голосов
/ 07 мая 2019

Для этой ошибки "HttpError: <HttpError 400 when requesting https://www.googleapis.com/drive/v3/files/1n8k_4fY4KMM9gnqD2MPvvV8cRgY0yCRd?alt=json returned "Bad Request">" запросу на обновление требуются refresh_token, client_id, client_secret и grant_type. Вот документация по обновлению токена доступа . Смотрите этот пост на github .

...