尝试使用Google Drive API v2插入新权限时代码:400错误

时间:2012-07-26 04:25:15

标签: google-drive-api

我在我的Rails应用中使用google-api-client(0.3.0)gem来通过Google Drive API v2访问用户的数据。

我已成功按标题搜索文件,然后尝试使用搜索结果中的文件ID插入新权限。我想以编程方式允许“有链接的任何人”对该文件发表评论。

按照示例代码https://developers.google.com/drive/v2/reference/permissions/insert,我编写了以下代码:

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.

根据gem源代码中的errors.rb,4xx错误是客户端错误。

非常感谢任何修复此错误的帮助。

1 个答案:

答案 0 :(得分:2)

在该版本的客户端库中可能存在问题,并且在0.3和0.4之间存在显着变化。我在当前版本0.4.4上运行了相同的片段,它工作正常。建议尽可能更新你的依赖。