Как зарегистрировать onesignal с помощью curl? - PullRequest
0 голосов
/ 17 февраля 2019

Я не знаю, почему js очень плохо работает с тегами.С curl я делаю это немедленно, смотрите ниже

$fields = array( 
'app_id' => "xxxxxxxxxxxxxxxxxxxxxxxxxx", 
'language' => "nl", 
'identifier' => "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
'device_type' => "5", 
'device_model' => getOs($_SERVER['HTTP_USER_AGENT']), 
'notification_types' => "1",
'tags' => array("email" => $rr['emailadres']) 
); 

$fields = json_encode($fields); 
//print("\nJSON sent:\n"); 
//print($fields); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/players"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
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["allresponses"] = $response; 
$return = json_encode( $return); 

Хорошо, теперь я хочу отправлять push-уведомления с curl, но когда я делаю с этим кодом:

    public function sendPush($text,$title,$email,$url,$imgUrl)
{

    //echo $text.$title.'-'.$email.'-'.$url.'-'.$imgUrl;
    ini_set('display_errors',0);
error_reporting(E_ALL); 
        $content = array(
            "nl" => ''.$text.''
            );

$filters = array(
    array("field" => "tag", "key" => "email","relation" => "=", "value" => $email),
);


        $fields = array(
            'app_id' => "676e190e-4c85-4de6-9f8c-84dec6fca383",
            'included_segments' => array('All'),
            'headings' => array("nl" => "".$title.""),
            'content_available' => array(true),         
            'contents' => $content,
            'url' => $url,      
            'filters' => array(array("field" => "tag","key" => "email", "value" => "".$email.""))

        );

        $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 OTE3YjliZGYtMmVmNi00NjAyLTgxNmItNDNkOTY2ZWM2OTY2'));
        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;

ini_set('display_errors',0);
error_reporting(E_ALL);         
}

Тогда я вижу вжурнал односигналов по статусу: НЕТ ПОЛУЧАТЕЛЕЙ ??Тег электронной почты существует, так что мы хотим его отправить?

Могу ли я отправить его прямо на идентификатор игрока?

...