отправить push-уведомление для Windows Phone 7 с помощью php

Я веб-разработчик (PHP). Я хотел бы найти push-уведомление для Windows Phone 7 с помощью PHP, но результат всегда .NET.

Пожалуйста, кто-нибудь может мне помочь.

ОБНОВЛЕНИЕ: как отправить сразу несколько устройств? потому что время задержки составляет около 1 секунды, поэтому, если у меня есть 1000 устройств для отправки, мне может потребоваться 1000 секунд для ожидания.


person Kannika    schedule 26.10.2011    source источник
comment
У вас есть ответ, чтобы отправить сообщение на несколько устройств одновременно? Если это так, пожалуйста, напишите об этом.   -  person viji    schedule 04.02.2013


Ответы (3)


Ниже приведен код PHP для отправки всплывающего уведомления на URL-адрес "_URL_TO_SEND_TO_", который является токеном, полученным от MPNS:

<?php
   // Create the toast message
   $toastMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" .
                "<wp:Notification xmlns:wp=\"WPNotification\">" .
                   "<wp:Toast>" .
                        "<wp:Text1>" . "SendToast" . "</wp:Text1>" .
                        "<wp:Text2>" . "Text Message" . "</wp:Text2>" .
                        "</wp:Toast> " .
                "</wp:Notification>";

    // Create request to send
    $r = curl_init();
    curl_setopt($r, CURLOPT_URL,_URL_TO_SEND_TO_);
    curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($r, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HEADER, true); 

    // add headers
    $httpHeaders=array('Content-type: text/xml; charset=utf-8', 'X-WindowsPhone-Target: toast',
                    'Accept: application/*', 'X-NotificationClass: 2','Content-Length:'.strlen($toastMessage));
    curl_setopt($r, CURLOPT_HTTPHEADER, $httpHeaders);

    // add message
    curl_setopt($r, CURLOPT_POSTFIELDS, $toastMessage);

    // execute request
    $output = curl_exec($r);
    curl_close($r);
  ?>  

Если это код, который вам нужен, проверьте этот ответ.

person Ameen    schedule 26.10.2011
comment
как мне получить URL_TO_SEND_TO от MPNS? - person Rizky Ramadhan; 31.12.2011
comment
новый 'HttpNotificationChannel().ChannelUri.AbsoluteUri;' вам нужно будет отправить uri на ваш сервер вместе с идентификатором телефона, так как URI меняется после закрытия приложения, и вы не сохраняете много бесполезных uri - person GeekPeek; 07.02.2012
comment
этот код предполагает, что push-уведомление отправляется только на один единственный uri/устройство. это означает, что моей службе необходимо отправить несколько запросов, и это может привести к проблемам с сетью/блокировкой ввода-вывода. - person codepushr; 16.01.2015

Вам не нужно реализовывать его в .NET. Вам просто нужно отправить правильную полезную нагрузку XML на URL-адрес, указанный телефоном.

Взгляните на эту статью о реализации push-уведомлений на Windows Phone 7.

Основные шаги:

  1. Получите URL-адрес конечной точки PUSH-уведомления (это делается через ваше приложение на телефоне).
  2. Отправьте этот URL-адрес своей веб-службе (эта веб-служба будет на PHP, .NET, как вам угодно).
  3. Отправьте полезные данные XML на URL-адрес, полученный на шаге 1, и пользователь получит PUSH-уведомление.
person Frazell Thomas    schedule 26.10.2011
comment
да, у меня есть URL-адрес с телефона, но проблема в том, что я не знаю, как написать код (PHP) для отправки полезной нагрузки XML на указанный URL-адрес. - person Kannika; 26.10.2011

Попробуйте это готовое решение http://phpwindowsphonepush.codeplex.com/SourceControl/changeset/view/18482#58320. Очень просто.

person Alexandr    schedule 18.01.2013