Я установил хук сущностей в Drupal 8, чтобы использовать API и отправлять push-уведомления, если создается новый узел в Drupal. У меня есть хук, настроенный в файле OneSignalConfigForm.php модуля интеграции OneSignal для Drupal 8, но когда я создаю новый узел, уведомление не приходит, как ожидалось. Вот код:
namespace Drupal\onesignal_api\Controller;
use Drupal\Core\Modules\Node\NodeAPI;
class OneSignalApiController extends NodeAPI { function function hook_onesignal_api_insert(Drupal\Core\Node\NodeAPI $node){
if($node->is_new) {
function sendMessage() {
$content = array(
"en" => 'New Node Created'
);
$hashes_array = array();
array_push($hashes_array, array(
"id" => "like-button",
"text" => "Like",
"icon" => "http://i.imgur.com/N8SN8ZS.png",
"url" => "http://push-test/"
));
array_push($hashes_array, array(
"id" => "like-button-2",
"text" => "Like2",
"icon" => "http://i.imgur.com/N8SN8ZS.png",
"url" => "http://push-test/"
));
$fields = array(
'app_id' => "8573c047-12f2-496c-a202-5942951cdda8",
'include_player_ids' => array("935d651a-a3f7-49eb-9e1b-23d8ca828764","4f536f45-f14f-45d5-aff0-56292a388cec","6f3c36d8-c3c9-4f99-9fde-c61590eea605"),
'data' => array(
"foo" => "bar"
),
'contents' => $content,
'web_buttons' => $hashes_array
);
$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 N2E4ODA5YjItNjViNS00YmVkLThjMWItYTljODhhNjI0YjFj'
));
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;
}
$response = sendMessage();
$return["allresponses"] = $response;
$return = json_encode($return);
$data = json_decode($response, true);
print_r($data);
$id = $data['id'];
print_r($id);
print("\n\nJSON received:\n");
print($return);
print("\n");
}
}
Что-то еще мне не хватает?