我是ruby on rails的新手,我正在研究sendgrid event webhooks for email。 我已经成功整合了电子邮件发送系统,但现在我想跟踪电子邮件事件。
我已经设置了一个带路径的控制器和方法来接收webhook响应。
当我直接点击链接时,每件事都运行正常,但是当我尝试使用sendgrid webhook测试工具测试它时,没有任何反应。我不知道它有什么问题。在网站或我的日志中没有显示错误。
这是我的路线
post 'apis/email_events', :to => 'apis#email_events'
测试端点的工具网址
http://localhost:8090/apis/email_events
控制器代码
class ApisController < ApplicationController
protect_from_forgery with: :null_session
require 'json'
def email_events
email = params["_json"][0]["email"]
event = params["_json"][0]["event"]
time = params["_json"][0]["timestamp"]
EmailInvite.create(email:email,status:event)
end
结束
当我使用带有json响应的postman命中同一个端点时,每件事情都运行正常,我在数据库中获得了记录,但是使用了sendgrid测试工具它没有用。
[
{
"email":"john.doe@sendgrid.com",
"timestamp": 1337197600,
"smtp-id":"<4FB4041F.6080505@sendgrid.com>",
"sg_event_id":"sendgrid_internal_event_id",
"sg_message_id":"sendgrid_internal_message_id",
"event": "processed"
},
{
"email":"john.doe@sendgrid.com",
"timestamp": 1337966815,
"ip":"X.XX.XXX.XX",
"sg_event_id":"sendgrid_internal_event_id",
"url":"https://sendgrid.com",
"sg_message_id":"sendgrid_internal_message_id",
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
"event":"click"
},
{
"ip": "X.XX.XXX.XX",
"sg_user_id": 123,
"sg_event_id":"sendgrid_internal_event_id",
"sg_message_id":"sendgrid_internal_message_id",
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
"event": "group_unsubscribe",
"email": "john.doe@sendgrid.com",
"timestamp": 1337969592,
"asm_group_id": 42
}
]
提前致谢。