ruby-on-rails-3.1 - 将 Google+ 与 Rails 集成

标签 ruby-on-rails-3.1 google-plus google-api-ruby-client

我已经有了与我的应用程序一起使用的登录(OAuth)部分,我现在要做的是下拉经过身份验证的用户的事件列表(例如状态提要)。

用户可以选择在经过身份验证后下拉此列表,到目前为止,这是我的代码:

# User Model
  def gplus
    auth = authorizations.find_by_provider("gplus")
    client = Google::APIClient.new(application_name: "AppName", application_version: '1.0', authorization: nil)

    plus = client.discovered_api('plus', 'v1')

    result = client.execute(
      key: API["gplus"][Rails.env]["secret"],
      api_method: plus.people.get,
      parameters: { 'collection' => 'public', 'userId' => 'me'  }
    )

    return result.data
  end

这是我不断遇到的问题(来自 Rails 控制台)

    #<Google::APIClient::Schema::Plus::V1::Person:0x3fe649ed04bc 
DATA:{"error"=>{"errors"=>[{"domain"=>"usageLimits", "reason"=>"keyInvalid", "message"=>"Bad Request"}], "code"=>400, "message"=>"Bad Request"}}>

我正在使用https://github.com/google/google-api-ruby-client ...这行不通的任何原因?

最佳答案

代码很接近,但还不够!

  1. 您正在获取 auth 对象,但实际上并未将其传递给您的客户端(您将其设置为 nil)。
  2. 您似乎将客户端 key 作为 API key 传递,这会导致问题。它们的 API key 用于 API 控制台中的“简单 API 访问” key - 如果您使用 oAuth 2.0 token ,则无需传递任何内容。如果您愿意,可以传递服务器简单 API key 。这实际上会捕获错误地使用不同项目的访问 token ,因此可以很方便,但不是必需的。
  3. 您不需要为 plus.people.get 指定集合参数

此外,请确保在 API 控制台的“服务”下启用了 Google+ API:http://developers.google.com/+

关于ruby-on-rails-3.1 - 将 Google+ 与 Rails 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16799550/

相关文章:

ruby-on-rails-3.1 - Rails 3.1 没有检测到 Coffeescript 和 Javascript 的变化?

ruby - 带有 OAuth2 : update and delete fail with "Insufficient Permission" error 的 YouTube API v3

ruby - 如何将多个范围与 google api ruby​​ 客户端结合起来?

google-plus - 如何在网站上显示我的 google+ 网站的帖子

google-api - Google Calendar API V3 insert_calendar 返回 503,但日历插入成功

javascript - 为 Rails 3.1 应用程序在 : dojo, backbone.js、knockout.js(或其他)之间做出决定

ruby-on-rails - ec2 ami for rails 3.1 apache passenger

ruby - 在 Ruby on Rails 中,将 rake 任务和测试文件的辅助函数放在哪里?

share - 如何在 Google+ 分享链接中添加客户头衔

android - 是否有任何解决方案可以在模拟器 (Android) 中运行 Google Plus 发布(分享互动帖子)