RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 657977
Accepted
Shevtsov Eugene
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 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Алексей Шиманский
    2020-05-22T22:52:01Z2020-05-22T22:52:01Z

    我刚刚研究完自己,可以分享。

    首先要提到的是,以防你不知道:

    “仅仅通过在 js 上安装一些库或插件”来实现它们是不可能的。现在解决方法如下:主要浏览器供应商提供他们的服务,通过这些服务您可以相应地使用这些供应商的浏览器。

    取自 浏览器中的通知主题(例如 vk 或其他)。我还查看了一些可以提供帮助的服务(当然,这些不是所有服务,但足以作为示例):

    1. https://onesignal.com/
    2. 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);


    因此,您可以随时向特定用户发送数据。

    一切。

    此服务有详细的文档,它支持以下内容:

    在此处输入图像描述



    美满结局!(???)

    家庭作业:

    事实上,有许多推送通知服务。但我不能确定还有哪些具有类似功能的其他服务存在。您只需要自己研究提供邮寄服务的服务并深入了解设置并找到类似的东西。

    • 3

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5