首页 > 解决方案 > 如何使用 php 变量通过 onesignal 发送通知?

问题描述

function sendMessage(){
  $content = array(
      "en" => 'Testing Message'
      );

  $fields = array(
      'app_id' => "XXXXXXXXX",
      'include_player_ids' => $usertomemberonesignalid,
      'data' => array("foo" => "bar"),
      'large_icon' =>"ic_launcher_round.png",
      'contents' => $content
  );

  $fields = json_encode($fields);

问题是它当前在里面输入播放器 ids 值时正在工作,include_player_ids 但我想用 PHP 变量动态地做到这一点。

标签: javascriptphponesignal

解决方案


这是我现有项目之一的示例代码。

// pass your single or multiple device ids here to send notification

// for single
$device_ids = array($PLAYERIDFROMDB);

// for multiple from array
/*$device_ids = array(
'2c5d007-5985-4ad9-a1d7-f4ec7eb84f00', // device id 1 (register_id from onceSignal)
'2c5d007-5985-4ad9-a1d7-f4ec7eb84f00'  // device id 1 (register_id from onceSignal)
); */
$content = array(
    "en" => 'Notification Title'
);
$data = array(
        "image"          => 'your_image_url', 
        "title"          => 'your Title',
        "message"        => 'your Message'
    );
$fields = array(
    'app_id' => 'ONESIGNAL_API_KEY', // your api key
    'include_player_ids' => $device_ids,
    'data' => $data,
    'contents' => $content
);

$sendContent = 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 ONESIGNAL_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, $sendContent);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

$response = curl_exec($ch);
curl_close($ch);
echo $response;

推荐阅读