Код: 400 Ошибка При попытке вставить новую разрешение с использованием Google Drive API V2
-
11-12-2019 - |
Вопрос
Я использую Gegle-API-Client (0.3.0) GEM для моего приложения Rails для доступа к данным пользователя через API Google Drive V2.
Я успешно искал файл по названию, а затем попытался использовать идентификатор файла из результата поиска, чтобы вставить новое разрешение.Я хочу программно разрешать «любой со ссылкой», чтобы комментировать файл.
После примерного кода здесь: https://developers.google.com/Drive / V2 / Ссылка / Разрешения / Вставить , написал следующий код:
new_permission = gDriveApi.permissions.insert.request_schema.new({
'role' => "reader",
'type' => "anyone",
'value' => "",
'additionalRoles' => ["commenter"],
'withLink' => true })
result = client.execute(:api_method => gDriveApi.permissions.insert,
:body_object => new_permission,
:parameters => { 'fileId' => file_id })
.
Я получил ошибку 400.Вот свалка хеша:
--- !ruby/object:Google::APIClient::Schema::Drive::V2::Permission
data:
error:
errors:
- domain: global reason: parseError
message: This API does not support parsing form-encoded input.
code: 400
message: This API does not support parsing form-encoded input.
.
Согласно ошибкам. rb в исходном коде GEM, ошибка 4xx - это ошибка клиента.
Любая помощь, исправленная эта ошибка, будет очень оценена.
Решение
Скорее всего, проблема в этой версии клиентской библиотеки, и были значительные изменения от 0,3 до 0,4.Я пробежал тот же фрагмент на текущей версии 0.4.4, и это работало нормально.Предложить обновление вашей зависимости, если вообще возможно.