Tengo un código OneSignal CURL implementado en mi aplicación webview que envía notificaciones a cada usuario.
Para apuntar a un usuario específico basado en el ID de usuario de OneSignal, probé el siguiente código para obtener el ID de usuario
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script> window.OneSignal = window.OneSignal || []; OneSignal.push(function() { OneSignal.init({ appId: "xxxxx", }); OneSignal.on('subscriptionChange', function (isSubscribed) { console.log("The user's subscription state is now:", isSubscribed); OneSignal.getUserId(function(userId) { console.log("OneSignal User ID:", userId); // (Output) OneSignal User ID: 270a35cd-4dda-4b3f-b04e-41d7463a2316 }); }); });// La salida no fue nada, tal vez el cambio de suscripción no fue cierto.
Y también esto:
window.OneSignal = window.OneSignal || []; OneSignal.push(function() { OneSignal.init({ appId: "abbd6373-f394-4912-a314-40493c2a6201", }); OneSignal.getUserId(function(userid){ console.log(userid); $(".some").html(userid); }); });//Salida 'NULL' en ID de usuario.
Todo lo que quiero hacer es obtener el ID de usuario de OneSignal y usarlo en el siguiente código para apuntar a un usuario específico:
notify("Alert","Testing Notification"); $content = array("en" => "Testing Notification "); $fields = array( 'app_id' => "xxxxxx", 'included_segments' => array('All'), 'contents' => $content, 'data' => array("en" => "bar"), 'large_icon' =>"ic_launcher_round.png", ); $fields = json_encode($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 xxxxxx' )); 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);Cualquier ayuda es muy apreciada..