Я отправляю текстовый push из кода API php успешно, но мне интересно, как отправить JSON из PHP API
Моя проблема заключается в том, что когда я отправляю JSON из кода PHP API, он получил вроде типа "сообщение".
Когда я отправляю один и тот же код JSON с панели управления синтаксическим анализатором, он отлично работает, поэтому я немного намекнул отправить "uri" ключ в данные, но это не помогло.
Что мне не хватает?
Благодарю.
это код PHP, который я использую
<?php
$APPLICATION_ID = "gggggggggggggggg";
$REST_API_KEY = "xxxxxxxxxxxxxxxxxxx";
//$MESSAGE = "your-alert-message";
if (!empty($_POST)) {
$errors = array();
foreach (array('app' => 'APPLICATION_ID', 'api' => 'REST_API_KEY', 'body' => 'MESSAGE') as $key => $var) {
if (empty($_POST[$key])) {
$errors[$var] = true;
} else {
$$var = $_POST[$key];
}
}
if (!$errors) {
$url = 'https://api.parse.com/1/push';
if(strstr($MESSAGE,"{")){ //json
$data['data_type']='json';
//$MESSAGE = json_decode($MESSAGE);
}
//, 'uri' => $MESSAGE
$data = array(
'channel' => 'test1',
'type' => 'android',
'expiry' => 1451606400,
'data_type' => 'json',
'data' =>array(
'alert'=> "the link2",
'uri' => $MESSAGE
),
'uri' => $MESSAGE
);
//var_dump( $data );die;
//if(strstr($MESSAGE,"{")) //json
//$data['data_type']='json';
$_data = json_encode($data);
//var_dump( $_data );die;
$headers = array(
'X-Parse-Application-Id: ' . $APPLICATION_ID,
'X-Parse-REST-API-Key: ' . $REST_API_KEY,
'Content-Type: application/json',
'Content-Length: ' . strlen($_data)
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
}
}
?>
На веб-сайте parse.com есть инструмент, который вы можете отправить PUSH, и в этом инструменте вы можете отправить push с двумя типами: обычный текст или JSON.
это выглядит так
Когда я пытаюсь отправить push с помощью этого инструмента parse.com в обоих типах, он отлично работает, и я правильно нажимаю
Но, когда я пытаюсь отправить push из моего кода PHP API как "JSON", я всегда получал его как "простой текст",
Что я делаю неправильно?
Это зависит от вашей структуры JSON, например, я хочу отправить это:
{
"data": {
"date": "2015-12-09",
"message": "and when you open this we will show you a message.",
"title": "6 Notice Click On It :)))",
"url": ""
},
"is_background": false
}
и в вашем php вы должны отправить так:
$data = array(
'where' => '{}', // send to all users
// 'channels' => '{my_channel_name}',
'data' => array(
'is_background'=>false,
'data'=>array(
'date'=>'2015-12-09',
'message'=>'and when you open this we will show you a message',
'title'=>' Notice Click On It',
'url'=>''
),
),
);