集成Google Places gem获得Google评论

问题描述 投票:0回答:2

我是初级RoR开发人员。我在将Google Places gem与我的应用程序集成时遇到问题。我的目的是为我的应用程序获取Google评论。我已获得许可,并且API密钥也已启用。但是,我无法访问该请求。

我一直在学习本教程。https://medium.com/ruby-on-rails-development/google-places-gem-21e9e1aac491

doctors_controller.rb

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

我得到的错误:

GooglePlaces::RequestDeniedError in Manage::DoctorsController#show
This API project is not authorized to use this API.

此外,有关如何在views.html上调用它们的说明也将有所帮助。预先感谢,这个菜鸟开发者对此表示感谢

ruby-on-rails ruby google-maps google-places
2个回答
0
投票

您必须设置环境变量。将API KEY视为房屋的钥匙,您不想让任何人都不信任他们的那些钥匙。只有您或与您住在一起的房子里的人(以团队为单位)才有钥匙。

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

gem dotenv,可让您创建一个.env文件,您可以在其中存储api密钥。基本上,您将创建一个.env并在其中存储您的API密钥。

。env

GOOGLE_API_KEY=<<YOUR API KEY HERE>>

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

 @client = GooglePlaces::Client.new(ENV['GOOGLE_API_KEY']) 

而且,您的show方法太忙了,这是一种反模式,但是我认为,如果您对Rails和Ruby有了更好的了解,以后可以进一步了解。


0
投票

看来您的api密钥无效。

© www.soinside.com 2019 - 2024. All rights reserved.