使用 google-api-ruby-client 将文本写入 google 文档文件

Write text to a google doc file with google-api-ruby-client

我正在尝试使用 google-api-ruby-client.

将一些文本写入新的 google 文档文件

我认为以下内容应该有效,但它无效:

file_metadata = {
  name: "Testing",
  mime_type: 'application/vnd.google-apps.document'
}

@drive.create_file(file_metadata,
                   fields: 'id',
                   upload_source: StringIO.new("tt"),
                   content_type: 'text/text')

当我 运行 这个我得到 Google::Apis::ClientError: badRequest: Bad Request


更新:在 Tanaike 在下面发布正确答案后,我还必须移动在我的服务用户的根目录中创建的文件。最终(工作)代码如下所示

file_metadata = {
  name: "Filename",
  mime_type: 'application/vnd.google-apps.document'
}

file = @drive.create_file(file_metadata,
                   fields: 'id,parents',
                   upload_source: StringIO.new("Text to go in file"),
                   content_type: 'text/plain')

current_parent = file.parents.first
@drive.update_file(file.id, nil,
                   add_parents: "#{@folder_id}",
                   remove_parents: "#{current_parent}")

这个修改怎么样?在这种情况下,文本的 mimeType 是 text/plain.

发件人:

content_type: 'text/text'

收件人:

content_type: 'text/plain'

注:

  • 在我的环境中,当我使用content_type: 'text/text'时,出现同样的错误。当我使用 content_type: 'text/plain' 时,包含 tt 文本的 Google 文档被创建到 Google 驱动器上的根文件夹。
  • 在这种情况下,假设您的@drive可以用于上传文件。

参考: