gpt4 book ai didi

ruby-on-rails - rails : Passing API Keys to the Controller

转载 作者:数据小太阳 更新时间:2023-10-29 08:37:31 24 4
gpt4 key购买 nike

我正在努力将 Twilio API 集成到我的 Rails 应用程序中。我按照教程 here ,但我在将 API key 输入 Controller 时遇到了问题。他们建议使用 ENV 变量,但是,我很难思考如何做到这一点(只使用 Rails 几周)。

所以我想我有两个问题:

  • 在开发/本地环境中使用 ENV 变量的最佳/最简单方法是什么?
  • 如果我将这些值硬编码到 secrets.yml 文件中,那应该行不通吗?我知道这不是安全的理想选择,但对于测试来说,它会起作用还是需要以某种方式进行初始化?

错误:

ArgumentError in NotificationsController#notify - Account SID and auth token are required

notifications_controller.rb

require 'twilio-ruby'

class NotificationsController < ApplicationController

skip_before_action :verify_authenticity_token

def notify
client = Twilio::REST::Client.new Rails.application.secrets.twilio_account_sid, Rails.application.secrets.twilio_auth_token
message = client.messages.create from: '+18588779747', to: '+18583821931', body: 'First ever MyMedy notifcation test.'
render plain: message.status
end

end

secrets.yml

development:
  secret_key_base: 'XXXXXXXXXXXXXXXXXXX'
  twilio_account_sid: <%= ENV["TWILIO_ACCOUNT_SID"] %>
  twilio_auth_token: <%= ENV["TWILIO_AUTH_TOKEN"] %>

test:

production:
  secret_key_base: 'XXXXXXXXXXXXXXXXXXX'
  twilio_account_sid: <%= ENV["TWILIO_ACCOUNT_SID"] %>
  twilio_auth_token: <%= ENV["TWILIO_AUTH_TOKEN"] %>

最佳答案

我是 Twilio 的开发人员传播者。

有许多方法可以在 Rails 应用程序中设置 ENV 变量。最简单的方法是在运行 rails server 命令的终端窗口中运行以下几行

export TWILIO_ACCOUNT_SID=ACXXXXX
export TWILIO_AUTH_TOKEN=YYYYYY

然后,在该窗口的生命周期内,将设置这些环境变量。

对于更永久的解决方案,您可以将这两行添加到您的 ~/.bash_profile

export TWILIO_ACCOUNT_SID=ACXXXXX
export TWILIO_AUTH_TOKEN=YYYYYY

然后 source ~/.bash_profile 会将变量加载到您当前的终端窗口,然后是您打开的任何其他终端窗口。

还有一些 gem 可以提供帮助。查看envyable , Figarodotenv它们都可以用于在应用程序中逐个应用程序地设置ENV 变量。

关于ruby-on-rails - rails : Passing API Keys to the Controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27476774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com