Я пытаюсь следовать этому примеру в PHP
https://msdn.microsoft.com/library/windows/apps/xaml/hh868252.aspx
Что будет эквивалентом этого кода в PHP?
byte[] contentInBytes = Encoding.UTF8.GetBytes(xml);
...
using (Stream requestStream = request.GetRequestStream())
requestStream.Write(contentInBytes, 0, contentInBytes.Length);
Если я попробую это, это не работает
$sendPush = curl_init();
curl_setopt($sendPush, CURLOPT_URL, $uri);
curl_setopt($sendPush, CURLOPT_HEADER, true);
$headers = array('Content-Type: text/xml',"Content-Type: text/xml","X-WNS-RequestForStatus:true", "X-WNS-Type:wns/toast","Content-Length: " . strlen($toastMessage) ,"X-WindowsPhone-Target: toast","Authorization: Bearer $accessToken");
curl_setopt($sendPush, CURLOPT_HTTPHEADER, $headers);
curl_setopt($sendPush, CURLOPT_RETURNTRANSFER, true);
curl_setopt($sendPush,CURLOPT_POST, true);
curl_setopt($sendPush, CURLOPT_POSTFIELDS, $toastMessage);
$output = curl_exec($sendPush);
Спасибо за вашу помощь
Проблема была не в CURL, а в строке $ toastMessage.
Если вы хотите отправлять уведомления WPS, вам нужно использовать один из форматов, описанных здесь
https://msdn.microsoft.com/en-us/library/windows/apps/hh761494.aspx?f=255&MSPPError = -2147217396
Других решений пока нет …