2

Railsアプリにgoogle-api-client(0.3.0)gemを使用して、Google DriveAPIv2を介してユーザーのデータにアクセスしています。

タイトルでファイルを正常に検索し、検索結果のファイル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エラーはクライアントエラーです。

このバグを修正するための助けをいただければ幸いです。

4

1 に答える 1

2

そのバージョンのクライアント ライブラリの問題である可能性が高く、0.3 と 0.4 の間で大幅な変更がありました。現在のバージョン 0.4.4 で同じスニペットを実行したところ、問題なく動作しました。可能であれば、依存関係を更新することをお勧めします。

于 2012-07-26T21:08:31.257 に答える