Google API使用Signet, SSL错误



我正在制作一个Ruby On Rails应用程序,我正在尝试使用Google Plus API的用户登录。要做到这一点,我使用Signet一个OAuth助手库。我正在看这个代码作为Signet与谷歌api的一个例子。

下面是我的代码:
require "signet/oauth_2/client"
require "google/api_client"

oathClient = Signet::OAuth2::Client.new(
  :authorization_uri => "https://accounts.google.com/o/oauth2/auth",
  :token_credential_uri => "https://accounts.google.com/o/oauth2/token",
  :client_id => Rails.application.secrets.gapi_client_id,
  :client_secret => Rails.application.secrets.gapi_client_secret,
  :redirect_uri => Rails.application.secrets.gapi_redirect_uri,
  :scope => "https://www.googleapis.com/auth/plus.login")
gapi_client = Google::APIClient.new(
  :application_name => "Branches",
  :application_version => "0.0.1")
oathClient.code = request.body.read
oathClient.fetch_access_token!#Error on this line
gapi_client.authorization = oathClient

在倒数第二行出现错误:

oathClient.fetch_access_token!

错误:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

我做了一些调查,看起来这是由于缺乏证书信息造成的。然而,在处理Signet时,没有显示解决方案解决此问题。



操作系统:Windows 8 x64
RoR版本:4.1.1
图章版本:0.5.1
Google API客户端版本:0.6.2

看起来与https://github.com/googleapis/google-api-ruby-client/issues/235相关,其中解决方案为:

  1. 更新openssl
  2. 如果你使用自定义的.pem文件,设置为:export SSL_CERT_FILE=/path/to/custom/certificate/authority.pem

相关内容

  • 没有找到相关文章

最新更新