Shevtsov Eugene Asked:2020-04-25 00:50:05 +0000 UTC2020-04-25 00:50:05 +0000 UTC 2020-04-25 00:50:05 +0000 UTC 如何通知用户订阅的新闻? 772 实施以下内容的最佳方法是什么? 一个人单击“订阅更新”按钮,实际上,希望一切都到此结束。 我考虑过使用浏览器通知,但我不明白是否可以实现这样一个人只收到有关他订阅的新闻的通知。 我不考虑发送电子邮件的选项。 push-уведомления 1 个回答 Voted Best Answer Алексей Шиманский 2020-05-22T22:52:01Z2020-05-22T22:52:01Z 我刚刚研究完自己,可以分享。 首先要提到的是,以防你不知道: “仅仅通过在 js 上安装一些库或插件”来实现它们是不可能的。现在解决方法如下:主要浏览器供应商提供他们的服务,通过这些服务您可以相应地使用这些供应商的浏览器。 取自 浏览器中的通知主题(例如 vk 或其他)。我还查看了一些可以提供帮助的服务(当然,这些不是所有服务,但足以作为示例): https://onesignal.com/ https://clevertap.com/ 以 ONESIGNAL为例,结果如下: 每个访问该站点或在设置中单击以订阅特定部分的用户都可以分配任何标签或一组标签(每个标签将对应于站点上的一个邮寄点)。这可以在服务的相应部分中看到: 可以通过Web Push SDK为用户分配标签、查看用户 ID、设置各种设置。 从上图中,您可以看到底部用户具有标签: {kino:true, delivery:true} 也就是说,抽象地说,他订阅了电影和送货通知。另一个带有{tort:true}摘要的订阅了有关“蛋糕”部分的通知。 现在,使用此服务提供的 REST API,您可以根据各种条件过滤数据来发送消息。具体来说,在这种情况下,我们将重点关注用户拥有的标签。 以下代码将向订阅 kino 和 tort 部分的用户发送消息: function sendMessage($themes){ $content = array( "en" => 'Привет user тут уведомления для юзера, который подписан на '. implode(', ', $themes) .'!' ); $filters = []; foreach ($themes as $theme) { $themeItem = ["field" => "tag", "key" => $theme, "relation" => "=", "value" => true ]; array_push($filters, $themeItem); array_push($filters, ["operator" => "OR"]); } array_pop($filters); $fields = array( 'app_id' => "a6a6a6a6-6666-6666-6666-a6a6a6a6a6", 'filters' => $filters, 'data' => array("foo" => "bar"), 'contents' => $content ); $fields = json_encode($fields); print("\nJSON sent:\n"); print($fields); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8', 'Authorization: Basic SDfojisdofiOIDFJOISjfoisFOIJFDSfjoijOIFJSOIFJoisf')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $response = curl_exec($ch); curl_close($ch); return $response; } $themes = ['kino', 'tort']; $response = sendMessage($themes); 因此,您可以随时向特定用户发送数据。 一切。 此服务有详细的文档,它支持以下内容: 美满结局!(???) 家庭作业: 事实上,有许多推送通知服务。但我不能确定还有哪些具有类似功能的其他服务存在。您只需要自己研究提供邮寄服务的服务并深入了解设置并找到类似的东西。
我刚刚研究完自己,可以分享。
首先要提到的是,以防你不知道:
取自 浏览器中的通知主题(例如 vk 或其他)。我还查看了一些可以提供帮助的服务(当然,这些不是所有服务,但足以作为示例):
以 ONESIGNAL为例,结果如下:
每个访问该站点或在设置中单击以订阅特定部分的用户都可以分配任何标签或一组标签(每个标签将对应于站点上的一个邮寄点)。这可以在服务的相应部分中看到:
可以通过Web Push SDK为用户分配标签、查看用户 ID、设置各种设置。
从上图中,您可以看到底部用户具有标签:
也就是说,抽象地说,他订阅了电影和送货通知。另一个带有
{tort:true}摘要的订阅了有关“蛋糕”部分的通知。现在,使用此服务提供的 REST API,您可以根据各种条件过滤数据来发送消息。具体来说,在这种情况下,我们将重点关注用户拥有的标签。
以下代码将向订阅 kino 和 tort 部分的用户发送消息:
因此,您可以随时向特定用户发送数据。
一切。
此服务有详细的文档,它支持以下内容:
美满结局!(???)
家庭作业:
事实上,有许多推送通知服务。但我不能确定还有哪些具有类似功能的其他服务存在。您只需要自己研究提供邮寄服务的服务并深入了解设置并找到类似的东西。