Sparkpost取消订阅和webhook

时间:2016-03-04 09:24:31

标签: php unsubscribe sparkpost

我在简报中有取消订阅链接的问题,无法弄清楚我做错了什么。

简报中的链接为<a title="Unsubscribe" data-msys-unsubscribe="1" href="https://example.com/en/site/unsubscribe">Unsubscribe</a>"

我创建了一个具有相同目标网址的webhook,似乎被触发了,因为它说“哦是的!最后一次成功批量发送于2016年3月4日上午10:02”。

我在PHP中实现这一点,起初我以为我没有正确读取它(使用file_get_contents('php://input')但是当我从Sparkpost webhook界面尝试TEST时,var_dump(file_get_contents('php://input'))的响应是:< / p>

HTTP/1.1 200
Date: Fri, 04 Mar 2016 09:17:57 GMT
Server: Apache
X-Powered-By: PHP/5.5.32
Content-Length: 1290
Connection: close
Content-Type: text/html; charset=utf-8

"<pre>string(1254) \"[{\"msys\":{\"unsubscribe_event\":{\"type\":\"list_unsubscribe\",\"campaign_id\":\"Example Campaign Name\",\"customer_id\":\"1\",\"event_id\":\"92356927693813856\",\"friendly_from\":\"sender@example.com\",\"mailfrom\":\"recipient@example.com\",\"message_id\":\"0e0d94b7-9085-4e3c-ab30-e3f2cd9c273e\",\"rcpt_meta\":{\"customKey\":\"customValue\"},\"rcpt_tags\":[\"male\",\"US\"],\"rcpt_to\":\"recipient@example.com\",\"raw_rcpt_to\":\"recipient@example.com\",\"rcpt_type\":\"cc\",\"subaccount_id\":\"101\",\"template_id\":\"templ-1234\",\"template_version\":\"1\",\"timestamp\":1454442600,\"transmission_id\":\"65832150921904138\"}}},{\"msys\":{\"unsubscribe_event\":{\"type\":\"link_unsubscribe\",\"campaign_id\":\"Example Campaign Name\",\"customer_id\":\"1\",\"event_id\":\"92356927693813856\",\"friendly_from\":\"sender@example.com\",\"mailfrom\":\"recipient@example.com\",\"message_id\":\"0e0d94b7-9085-4e3c-ab30-e3f2cd9c273e\",\"rcpt_meta\":{\"customKey\":\"customValue\"},\"rcpt_tags\":[\"male\",\"US\"],\"rcpt_to\":\"recipient@example.com\",\"raw_rcpt_to\":\"recipient@example.com\",\"rcpt_type\":\"cc\",\"subaccount_id\":\"101\",\"template_id\":\"templ-1234\",\"template_version\":\"1\",\"timestamp\":1454442600,\"transmission_id\":\"65832150921904138\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36\"}}}]\"\nstring(2) \"qq\"\n"

点击简报中的取消订阅链接时,相同的转储是一个空字符串(string(0) "")。

我做错了吗?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。 我认为取消订阅链接中的URL不需要与webhook相同。

不是将结果打印到屏幕上,而是将其写入文件。 你会看到,点击取消订阅链接几秒钟后,它就会有数据。

答案 1 :(得分:0)

我希望根据这个问题的日期你已经有了答案,所以我会把这个放在下一个人身上。

取消订阅链接不需要与您的webhook端点相同。它的工作方式是您将获得“取消订阅”webhook事件,但用户也将被重定向到您提供的链接。

这是SparkPost的一个文档,它更详细地描述了这一点:     https://www.sparkpost.com/docs/user-guide/setting-up-unsubscribe-links/

如果您需要快速测试方法,可以在此处使用我的WebHook监视器:     https://github.com/yepher/webhook_monitor

或在此处使用正在运行的版本:http://webhook.yepher.com:3000/

当您访问该页面时,您将获得“唯一”网址。只需添加它作为您的一个webhooks。然后发送电子邮件并单击取消订阅链接。过了一会儿,你会看到“取消订阅活动”。您可以打开第二个webhook监视器并将其用作“取消订阅链接”,然后您将看到两者。 webhook事件将是“POST”,最终用户的实际点击将是“GET”