标签: garb-gem

使用Google Analytics API v3的OAuth 2.0

我曾经能够使用我的帐户的登录名和密码查询Google AnalyticsAPI.谷歌现在使用OAuth进行身份验证,这很棒......唯一的问题是我只需要一个访问令牌.我不想让其他用户获取他们的分析数据.

我只是想获取我的数据.有没有办法只为我的应用或分析帐户生成访问令牌?

我知道存在这样的解决方案......例如,Twitter为不需要特定用户登录的应用程序提供了所谓的"单用户oauth".

再一次,我在这里想要完成的是通过API获取我自己的分析数据.

有没有办法正确地做到这一点?

oauth google-api google-analytics-api oauth-2.0 garb-gem

28
推荐指数
3
解决办法
2万
查看次数

无法获得Google AnalyticsAPI的oAuth2访问令牌

我正在使用Rails + Garb Gem(Sija Branch)+ omniauth-google-oauth2 Gem,我可以使用Google AnalyticsAPI成功验证并提取我们的应用在使用用户登录时生成的数据,例如:

Garb::Session.login('USERNAME', '<PASSWORD>')
Run Code Online (Sandbox Code Playgroud)

然后我可以使用Garb连接到我想要的Analytics Profile并从中提取数据并在网页上显示一些图表.一切正常.

但是,我想使用oAuth2对Analytics进行身份验证,这就是为什么我必须从Github安装Garb Gem的Sija分支(它支持oAuth2),我还安装了omniauth-google-oauth2 Gem.现在理论上我应该能够使用以下代码进行身份验证:

Garb::Session.access_token = access_token # an instance of OAuth2::Client
Run Code Online (Sandbox Code Playgroud)

在这一点上,它对我来说有点模糊,我非常感谢一些指导.这是我走了多远:

1)我在Google API控制台中创建了一个项目,并启用了服务下的Analytics API

2)这为我提供了客户端ID和客户端密钥

3)我遇到了这个代码,我可以用上面的ID和Secret填充:

client = OAuth2::Client.new(
GOOGLE_CLIENT_ID,
GOOGLE_CLIENT_SECRET,
{
    :site          => 'https://accounts.google.com',
    :authorize_url => '/o/oauth2/auth',
    :token_url     => '/o/oauth2/token'
})
Run Code Online (Sandbox Code Playgroud)

4)然后是下一段代码:

response = OAuth2::AccessToken.new(
    client,
    STORED_TOKEN, {
    refresh_token: STORED_REFRESH_TOKEN,
    expires_at: STORED_EXPIRES_AT
})
Run Code Online (Sandbox Code Playgroud)

5)然后在理论上连接:

Garb::Session.access_token = response
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我没有上面第(4)点中的令牌信息.在我看来,使用oAuth2我需要进行一次"握手"并打印出返回令牌值?也许通过Rails代码打印返回的值,然后将令牌值粘贴到Rails应用程序中的常量中,以便我可以在上面的代码中使用它们?我真的很困惑.正如我之前提到的,使用用户登录身份验证,Web应用程序正常工作.所有Web应用程序正在进行的是使用分析进行身份验证,下拉一些数据并绘制图表.但是由于我不知道如何获得Garb Gem正在寻找的访问令牌,所以我无法将其转换为oAuth2 .我还应该注意,这不是一个有多个用户身份验证的公共网站,这是一个连接到我们自己的Google Analytics数据的CMS网站.

我已经看到了一些方面的部分片段,但没有完全解释或工作的例子.我真的很感激任何指导和帮助这个问题.

提前谢谢了,

JR

ruby-on-rails google-analytics-api access-token oauth-2.0 garb-gem

4
推荐指数
1
解决办法
3732
查看次数