2017-02-08 114 views
0

我想为我的应用授权Calendar API。我无法获得使用提供的.json文件或使用ENV变量的授权。如何为具有ENV变量的服务帐户授权Google API客户端?

有人可以请向我解释如何做到这一点?我宁愿使用ENV变量,但如果这是不可能的,那么任何有效的方法将是惊人的!

这是我现在有:

client = Google::APIClient.new(:application_name => 'App Name', :application_version => '1.0.0') 
     client_secrets = Google::APIClient::ClientSecrets.load 
     client.authorization = 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/calendar', 
     :issuer => Rails.application.secrets.GOOGLE_CLIENT_EMAIL, 
     :person => Rails.application.secrets.GOOGLE_CALENDAR_EMAIL 
     ) 
     client.authorization.fetch_access_token! 
     service = client.discovered_api('calendar', 'v3') 
+0

你应该在你的问题的评论中包括你提到的错误,这将有助于找到问题。 –

回答

0

您可以使用figaro在Rails创建环境变量。查看他们的文档以获取更多配置选项。

+0

该应用程序使用ents变量的secrets.yml文件,所以我不能使用figaro。 ENV变量没有问题,但我已经设置了它们。谷歌API授权是问题,因为它似乎没有工作。 – NeyLive

+0

你收到了什么错误? –

+0

没有将nil隐式转换为字符串错误 – NeyLive

相关问题