[英]How to integrate the Google Places gem to obtain Google reviews
我一直在關注“ google_places gem ”教程,但在將 Google Places gem 與我的代碼集成以獲取應用程序的 Google 評論時遇到了問題。
我已獲得許可並且 API 密鑰也已啟用,但是我無法訪問該請求。
醫生_控制器.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
調用它們?
您必須設置環境變量。 將 API KEY 視為您房屋的鑰匙。 您不想讓您不信任的任何人獲得這些密鑰。 只有您或住在您家中的人(將其視為團隊)才能擁有鑰匙。
現在,您存儲 Google 提供的 API 密鑰的方式是在環境變量中。 環境變量只是一種存儲該 API 密鑰並能夠從應用程序中獲取它的安全方式。 您可以 在此處閱讀有關 Ruby 如何使用環境變量的更多信息。
有一個dotenv gem,它允許您創建一個.env
文件,您可以在其中存儲 API 密鑰。
.env:
GOOGLE_API_KEY=<<YOUR API KEY HERE>>
現在您可以將此 API KEY 傳遞給您的腳本,這樣當客戶端向 Google API 發出請求時,您會得到響應。
@client = GooglePlaces::Client.new(ENV['GOOGLE_API_KEY'])
另外,你的show
方法太忙了,這是一種反模式,但我認為你可以在以后對 Rails 和 Ruby 有更好的了解時了解更多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.