ruby-on-rails - 在 Ruby on Rails 中访问 Google Drive 电子表格

标签 ruby-on-rails ruby oauth google-api

我正在尝试获取 Google Drive 电子表格的内容,但我似乎找不到可以轻松完成此操作的 gem。我试过 google-drive-ruby ,但它涉及一个步骤,我必须从 Google 的网站获取授权 token 。这不是很有帮助,因为我必须在服务器端完成所有这些工作。显然在以前版本的 gem 中有一个登录方法,但被删除了。

有什么办法吗?我必须使用 OAuth 吗?获取 token 并将该 token 传递到 google-drive-ruby?

最佳答案

我设法在 Reddit 上得到了答案。您需要一个服务帐户并与您的服务应用程序的电子邮件共享文档。 p12 key 也必须存储在某个地方。

# gem install google-api-client -v 0.8.6 # upper versions are not compatible with this code

require "google/api_client"

@email = "email@developer.gserviceaccount.com"
@key = "path/to/key.p12"

key = Google::APIClient::KeyUtils.load_from_pkcs12(@key, 'notasecret')

auth = Signet::OAuth2::Client.new(
  token_credential_uri: 'https://accounts.google.com/o/oauth2/token',
  audience: 'https://accounts.google.com/o/oauth2/token',
  scope: ["https://www.googleapis.com/auth/drive", "https://spreadsheets.google.com/feeds/"].join(' '),
  issuer: @email,
  access_type: 'offline',
  signing_key: key
)

auth.fetch_access_token!
puts auth.access_token  

关于ruby-on-rails - 在 Ruby on Rails 中访问 Google Drive 电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30331510/

相关文章:

ruby-on-rails - 如何转换字符串以便在 URL 中正确传递它?

javascript - Cordova/Phonegap oauth.io 弹出窗口未显示

ruby-on-rails - 新手问题 : Class and instance methods in Ruby on Rails

ruby-on-rails - Ruby 或 Rails 是否有 "in multiples of"方法?

ruby-on-rails - Mime::Type::InvalidMimeType ("charset=utf-8"不是有效的 MIME 类型)

ruby - 实例变量不在方法之间共享

ruby-on-rails - Ruby on Rails with Faye,如何向特定订阅者广播数据

ruby-on-rails - Rails Gemfile 默认为 'https' - 'bundle install' 失败

ruby-on-rails - 在 ROR 应用程序中使用 Facebook 和 OAuth 登录时出错

Android:OAuth2 - 如何实现记住我的功能?