在rails中实现并且暂时只在本地运行。
使用谷歌地方的谷歌API服务器密钥是......让我们说..." abc123"
当我使用网址时,只能看到一个网址:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=abc123
它提取信息。
当我从mac终端输入env时,我列出了一个值:
PLACES_API=abc123
当我运行填写文字键的代码时:
@client = GooglePlaces::Client.new("abc123")
它工作正常。
但是,当我尝试使用
进行此操作时@client = GooglePlaces::Client.new(ENV['PLACES_API'])
它出错了,当我试图把ENV [' PLACES_API']放空时。
我假设我没有正确使用env变量,但现在我想知道我做错了什么以及如何使用环境变量。
答案 0 :(得分:1)
选项1
如果您在代码中使用ENV['PLACES_API']
,那么在启动rails服务器之前,您必须导出密钥。在终端运行export PLACES_API="api key"
,然后启动服务器。
选项2(处理密钥的更好方法)
使用以下代码
在gmap.yaml
目录中创建文件config
development:
secret: "api key"
test:
secret: "api key"
production:
secret: "api key"
现在使用以下代码
在gmap.rb
目录中创建一个新文件config/initializars
PLACES_API = YAML.load_file("#{::Rails.root}/config/gmap.yml")[::Rails.env]
现在您可以使用
访问密钥了@client = GooglePlaces::Client.new(PLACES_API['secret'])