【问题标题】:Send a Web Push (Chrome - GCM/FCM) Notification Directly, Based on User DB from OneSignal根据 OneSignal 的用户数据库直接发送 Web 推送 (Chrome - GCM/FCM) 通知
【发布时间】:2019-01-30 19:24:35
【问题描述】:

我目前使用 OneSignal 作为网络推送提供商,并希望独立地向我的所有用户发送消息,而不依赖和依赖他们的服务(显然,新引入的成本)。

OneSignal 允许我下载我的整个用户数据库,包括 GCM/FCM 数据。

提供的数据是否足以编写从数据库向用户发送消息的简单代码?

这是一行的示例,其中包含它们提供的字段:

id
identifier
session_count
language
timezone
game_version
device_os
device_type
device_model
ad_id   tags
last_active
playtime
amount_spent
created_at
invalid_identifier
badge_count
lat
lon
rooted
ip
country web_auth
web_p256



7a2ad79c-4315-4b57-be2b-6cce179260ed
https://android.googleapis.com/gcm/send/eNKyRHWMfMs:APA91bHMRVQk7gz27_JNTEsMnorqzd_JR6626eg43p-BhXmb1pslLX66db6w5-Aj--3GtpoCSVRHzMv2y_9tQlIVWKLakfmfLEAXy3rOsI4dvujHwou_X2wY9-TezBuDgST-o5A0fvo3
1
en
28800
56.0
5
Win32 Chrome
{}
2017-03-11 13:48:03.503015
0
0.00
2017-03-11 13:48:03.488008
t
0
f
125.60.243.173
PH
BFgB3OnEz3fGbNEbC/hiMA==
BMgmk8uppenwp1c5sPprEPHNYOu7n8yUjbAU7sKaImqldN+WnJosdZmUV/d4bv7RyQYiqu/z6KsJSn99B+A3IIA=

如果可能的话,我将非常感谢以任何语言(最好是 PHP,不一定)的代码示例的方向发送,这可以完成向该用户发送消息作为示例。

谢谢!

【问题讨论】:

    标签: push-notification google-cloud-messaging firebase-cloud-messaging onesignal web-push


    【解决方案1】:

    您可以使用一个信号的 rest api 向用户发送通知。 在一个信号上发送一个 curl 请求,其中包含所需的所有详细信息 -

    $content      = array(
        "en" => '' // Your message content
    );
    $heading = array(
        "en" => ''  // Put heading according to you
    );
    $fields = array(
        'app_id' => ,  // Enter our app id here
        'filters' => array( array( "field" => "tag", "key" => "ad_id", "relation" => "=", "value" => 0) ), // You can use the ad_id data tag 
        "url" =>  '',  // Enter your landing url
        'contents' => $content,
        'headings' => $heading
    );
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json; charset=utf-8',
                'Authorization: Basic '.REST_API_KEY.''           // Your api key
    ));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
    

    您可以在realtion中使用数据标签或plaer id向过滤的用户发送通知。

    【讨论】:

    • 我特别提到我不想通过 OneSignal 发送通知,而是使用我提到的字段直接发送它,而不是通过 OneSignal API,通过 gcm/ 发送给用户(例如) fcm
    猜你喜欢
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多