代码之家  ›  专栏  ›  技术社区  ›  Andrew Accuardi

让sendgrid ruby库作为ruby脚本运行的问题

  •  0
  • Andrew Accuardi  · 技术社区  · 7 年前

    /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: "example@email.com", 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: 'examplenonprofit@email.com'))
    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
    

    任何关于如何前进的见解都将非常好,谢谢!

    1 回复  |  直到 7 年前
        1
  •  0
  •   Anton    7 年前

    Rails控制台加载环境变量,因此当从那里执行代码时,ENV['SENDGRID\u API\u KEY]具有值。
    当您在不加载环境的情况下将其作为脚本运行时,结果为零。
    根据此处的文档:
    https://github.com/sendgrid/sendgrid-ruby#setup-environment-variables

    推荐文章