首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何集成Google Places gem以获取Google评论

如何集成Google Places gem以获取Google评论
EN

Stack Overflow用户
提问于 2020-02-04 23:36:29
回答 2查看 272关注 0票数 0

我一直在学习"google_places gem“教程,但在将Google Places gem与我的代码集成来为我的应用程序获取谷歌评论时遇到了麻烦。

我已获得权限,API密钥也已启用,但访问请求时遇到问题。

doctors_controller.rb:

代码语言:javascript
复制
class Manage::DoctorsController < Manage::BaseController
    # layout "design"
     require 'google-places'



  def show
    @doctor = Doctor.find(params[:id])
    authorize @doctor, :manage?
    @doctor = @location = @doctor.decorate
    #tring out google reviews
    api_key = "my_key"
    @client = GooglePlaces::Client.new(api_key) 
    @client = @client.spots(-33.8670522, 151.1957362, :types => 'restaurant')
  end

我得到的错误是:

代码语言:javascript
复制
GooglePlaces::RequestDeniedError in Manage::DoctorsController#show
This API project is not authorized to use this API.

如何在views.html中调用它们

EN

回答 2

Stack Overflow用户

发布于 2020-02-05 00:48:13

您必须设置环境变量。把API密钥想象成你房子的钥匙。你不会想让你不信任的人拿到钥匙的。只有你或住在你房子里的人--把它想象成团队--才会有钥匙。

现在,您存储Google提供的API密钥的方式是在一个环境变量中。环境变量只是存储API密钥并能够从应用程序中获取它的一种安全方法。您可以阅读有关Ruby如何使用环境变量here的更多信息。

有一个API,可以让您创建一个dotenv文件,您可以在其中存储您的.env密钥。

.env:

代码语言:javascript
复制
GOOGLE_API_KEY=<<YOUR API KEY HERE>>

现在,您可以将这个API密钥传递给您的脚本,这样当客户端向Google API发出请求时,您就会得到响应。

代码语言:javascript
复制
 @client = GooglePlaces::Client.new(ENV['GOOGLE_API_KEY']) 

此外,您的show方法太忙了,这是一种反模式,但我认为当您对Rails和Ruby有了更好的理解后,您可以进一步了解这一点。

票数 0
EN

Stack Overflow用户

发布于 2020-02-05 01:42:11

您的API密钥可能无效,因为您没有权限访问此API。也许你还没有在你的Google账户中启用Google Places API。

  1. 确保您的api_key仍然有效。"Get an API Key“解释了如何。
  2. 如果它有效,你应该将你敏感的api_key隐藏在Rails的credentials (>= Rails 5.2)中,然后在你的控制器中使用它。

@client = GooglePlaces::Client.new(Rails.application.credentials:api_key)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60060750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档