如何授权使用google-api-ruby-client

时间:2011-09-21 01:04:28

标签: ruby oauth google-api

我正在使用谷歌api的红宝石,但不知道如何开始,只是给我一个ABC的例子,非常感谢?

2 个答案:

答案 0 :(得分:11)

如果您要创建服务帐户应用程序以访问Google Analytics。

  1. 通过https://code.google.com/apis/console向Google注册。 在API Access选项卡上,单击Create client ID,选择Service Account。存储Google将生成的密钥文件,并记住该密钥的密码。
  2. 以下是一些可以帮助您入门的代码

    require 'rubygems'
    require 'google/api_client'
    
    api_client = Google::APIClient.new
    path_to_key_file ="/path/to/key/file-privatekey.p12"
    passphrase = "google_generated_password"
    key = Google::APIClient::PKCS12.load_key(path_to_key_file, passphrase)
    
  3. 一旦密钥可用,请使用您的客户端ID初始化断言器(API控制台中的电子邮件) 和授权范围。

    asserter = Google::APIClient::JWTAsserter.new(
       'super_long_client_id_from_api_console@developer.gserviceaccount.com',
       'https://www.googleapis.com/auth/analytics.readonly',
       key)
    
    # To request an access token, call authorize:
    api_client.authorization = asserter.authorize()
    puts api_client.authorization.access_token
    

    http://code.google.com/p/google-api-ruby-client/wiki/ServiceAccounts

答案 1 :(得分:0)

我在其他一些帖子中回答了类似的内容,我发现它们就像这一个......所以请使用google-api-client(对于任何谷歌api)使用相关的红宝石,使用api密钥而不是OAuth时进行身份验证的一些细节......

我在the code abode概述了这个过程(使用api密钥服务器端)。

在构造客户端时,您必须明确地将授权参数设置为nil,否则gem会尝试使用OAuth进行身份验证,因此如果仅使用api密钥从服务器调用,则始终会获得401 Unauthorized。

the code abode - google-api-client for ruby