Отправка push-уведомлений через Интернет (Chrome - GCM / FCM) напрямую на основе пользовательских баз данных из OneSignal - PullRequest
0 голосов
/ 30 января 2019

В настоящее время я использую 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, а необязательно), что может привести к отправке сообщения этому пользователю в качестве примера.

Спасибо!

1 Ответ

0 голосов
/ 31 января 2019

Вы можете отправить уведомление пользователю, используя rest api одного сигнала.Отправьте запрос скручивания по одному сигналу со всеми необходимыми подробностями -

$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;

Вы можете использовать тег данных или идентификатор плаера в поле для отправки уведомления отфильтрованному пользователю.

...