Разбор Push-уведомлений с PHP - PullRequest
3 голосов
/ 25 февраля 2012

Я использую Parse для отправки уведомлений для приложений iOS и Android.Но я хочу сделать это с моего сайта.

Я нашел это в документах Parse:

Чтобы отправить push-уведомление, отправьте запрос POST на https://api.parse.com/1/push с установленным заголовком Content-Typeк заявке / JSON.Простое предупреждение может быть отправлено на устройства Android в глобальном широковещательном канале с помощью следующей команды:

curl -X POST \

-H "X-Parse-Application-Id: $ {APPLICATION_ID} "\

-H" X-Parse-REST-API-Key: $ {REST_API_KEY} "\

-H" Тип содержимого: application / json "\

-d '{"channel": "", \

    "type": "android", \
    "expiry": 1451606400, \
    "data": { "alert": "greetings programs" } }' \

https://api.parse.com/1/push

Кто может помочь мне создать PHP-файл для публикации этого сообщения?Спасибо!

Ответы [ 2 ]

13 голосов
/ 25 февраля 2012

Переводя командную строку curl в PHP, вы получаете что-то вроде

<?php
$url = 'https://api.parse.com/1/push';
$data = array(
    'channel' => '',
    'type' => 'android',
    'expiry' => 1451606400,
    'data' => array(
        'alert' => 'greetings programs',
    ),
);
$_data = json_encode($data);
$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_exec($curl);

UPDATE

<code><?php

$APPLICATION_ID = "your-app-id";
$REST_API_KEY = "your-api-key";
$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';
        $data = array(
            'channel' => '',
            'type' => 'android',
            'expiry' => 1451606400,
            'data' => array(
                'alert' => $MESSAGE,
            ),
        );
        $_data = json_encode($data);
        $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);
    }
}
?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
    <meta charset="utf-8" />
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Parse API</title>
</head>
<body>
    <?php if (isset($response)) {
        echo '<h2>Response from Parse API</h2>';
        echo '<pre>' . htmlspecialchars($response) . '
'; echo '
'; } elseif ($ _POST) { echo '

Ошибка!

'; echo '
';
        var_dump($APPLICATION_ID, $REST_API_KEY, $MESSAGE);
        echo '
'; }?>

Отправить сообщение на Parse API

">

">

При этом на ваш неустановленный вопрос следует ответить. Если вы все еще не можете понять, как это сделать, вам следует серьезно подумать о том, чтобы научиться изучать webdev или менять работу. Это самое основное, что вы можете сделать.

0 голосов
/ 25 февраля 2012

Для меня похоже, что вы должны сделать простой HTTP-запрос в формате json.Вы можете сделать это в javascript через ajax или используя расширение curl в php.

'- H', вероятно, заголовок, -d обозначает данные в формате json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...