私はsendgrid-rubyライブラリを電子メールで送信しようとしていますが、行ごとに実行して作業できるスクリプトを作成しています。しかし、私は全体としてスクリプトを実行しようとすると、私はここでrubyスクリプトとしてsendgrid-rubyライブラリを実行する際の問題
/Users/andrewaccuardi/.rvm/gems/ruby-2.4.1/gems/sendgrid-ruby-5.1.0/lib/sendgrid/client.rb:24:in `+': no implicit conversion of nil into String (TypeError)
を取得し、私はコールのために使用していたコードは次のとおりです。
require 'sendgrid-ruby'
include SendGrid
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
email = SendGrid::Mail.new
email.from = SendGrid::Email.new(email: "[email protected]", name: "Example User")
email.subject = "Your Email's Subject"
p = SendGrid::Personalization.new
p.add_to(SendGrid::Email.new(email: "example_email", name: "example_name"))
p.add_substitution(Substitution.new(key: '-companyName-', value: 'Example_company'))
p.add_substitution(Substitution.new(key: '-eventName-', value: 'DINOSAUR PARTY'))
p.add_substitution(Substitution.new(key: '-eventDays-', value: '35'))
p.add_substitution(Substitution.new(key: '-eventStartDate-', value: '08/15/1993'))
p.add_substitution(Substitution.new(key: '-eventEndDate-', value: '12/22/1992'))
p.add_substitution(Substitution.new(key: '-eventStartTime-', value: '12:30pm'))
p.add_substitution(Substitution.new(key: '-eventEndTime-', value: '12:30am'))
p.add_substitution(Substitution.new(key: '-eventAddress-', value: '1234 SE Main St.'))
p.add_substitution(Substitution.new(key: '-eventYears-', value: '3'))
p.add_substitution(Substitution.new(key: '-eventWebsite-', value: 'www.example.com'))
p.add_substitution(Substitution.new(key: '-eventFacebook-', value: 'facebook.com/example'))
p.add_substitution(Substitution.new(key: '-eventTwitter-', value: 'twitter.com/example'))
p.add_substitution(Substitution.new(key: '-eventOtherMedia-', value: 'othermedia.com/example'))
p.add_substitution(Substitution.new(key: '-eventDescription-', value: "Vape shoreditch fixie man bun vexillologist VHS. You probably haven't heard of them stumptown edison bulb, echo park narwhal +1 skateboard portland poutine pok pok bitters activated charcoal pinterest. Mlkshk 90's jean shorts kale chips four dollar toast glossier. Ennui semiotics brunch twee man braid lumbersexual chia plaid. Crucifix kogi tofu cardigan. Roof party sustainable jean shorts umami asymmetrical dreamcatcher. Offal biodiesel edison bulb tofu raw denim cred. Kogi banh mi shoreditch."))
p.add_substitution(Substitution.new(key: '-eventAttendance-', value: '50+'))
p.add_substitution(Substitution.new(key: '-eventCategory-', value: 'Entertainment'))
p.add_substitution(Substitution.new(key: '-eventGender-', value: 'Female'))
p.add_substitution(Substitution.new(key: '-eventAge-', value: '21+'))
p.add_substitution(Substitution.new(key: '-eventRequest-', value: 'Beer'))
p.add_substitution(Substitution.new(key: '-sellingRequest-', value: 'Email Blast'))
p.add_substitution(Substitution.new(key: '-repsNeeded-', value: '5'))
p.add_substitution(Substitution.new(key: '-tapsNeeded-', value: '10'))
p.add_substitution(Substitution.new(key: '-cupsNeeded-', value: '15'))
p.add_substitution(Substitution.new(key: '-alcoholPermit-', value: 'Yeah, buddy'))
p.add_substitution(Substitution.new(key: '-food-', value: 'Pizza'))
p.add_substitution(Substitution.new(key: '-promoOpps-', value: 'Lots'))
p.add_substitution(Substitution.new(key: '-nonProfName-', value: 'Non-profit example name'))
p.add_substitution(Substitution.new(key: '-nonProfWebsite-', value: 'www.nonprofitexample.com'))
p.add_substitution(Substitution.new(key: '-nonProfEmail-', value: '[email protected]'))
p.add_substitution(Substitution.new(key: '-nonProfPhone-', value: '555-555-3331'))
email.add_personalization(p)
email.template_id = "684f302c-5669-4114-a953-c3e15d6de44d"
response = sg.client.mail._('send').post(request_body: email.to_json)
puts response.status_code
puts response.body
puts response.headers
任意の洞察力前方に移動する方法への希望すばらしい、ありがとう!
"Authorization": "Bearer '+ @api_key +' - これはclient.rbファイルの24行目です。あなたは '@api_key'がnilではないと確信していますか? – Anton
'rails c'でその行を実行すると、正しい応答が出力されます。 @api_keyは正しいです。 –
Railsコンソールは環境変数にアクセスできません。スクリプトはENV ['SENDGRID_API_KEY']をスクリプトから出力できません。 – Anton