我設置了一個PHP腳本來使用this tutorial發送推送通知。我沒有任何錯誤地運行腳本,但沒有顯示在我的設備上。我究竟做錯了什麼?iPhone推送通知(PHP)不發送
0
A
回答
0
我有同樣的問題,但通過編輯這一行,我現在忽視解決...
$output = json_encode($payload);
到
$payload = json_encode($payload);
第一個將給予strlen的錯誤,但我的服務器上的錯誤呢不生成。在真實服務器上嘗試失敗後,在本地主機上運行時出現strlen錯誤。
我還爲local_cert添加了ssl passpharse,因爲我的pem文件有密碼。
以下是最終的代碼...請用您自己的信息替換your_token_hex_string和your_passphrase。
$device = 'your_token_hex_string';
$payload['aps'] = array('alert' => 'This is the alert text', 'badge' => 1, 'sound' => 'default');
$payload = json_encode($payload);
$options = array('ssl' => array(
'local_cert' => 'apns_dev.pem',
'passphrase' => 'your_passphrase'
));
$streamContext = stream_context_create();
stream_context_set_option($streamContext, $options);
$apns = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $device)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
fclose($apns);
7
創建常用的功能推送通知傳遞的功能devicetoken,以下消息PARAMS和額外參數,按您的應用需求。 如果您使用的是開發者pem文件,那麼您必須使用「gateway.sandbox.push.apple.com:2195」,如果您使用的是distributer panm文件,則必須使用「gateway.push.apple.com:2195」
public function pushtoios($devicetoken, $message, $params = array()) {
$passphrase = 'apple';
$ctx = stream_context_create();
/*Development pam file*/
//stream_context_set_option($ctx, 'ssl', 'local_cert', your path.'apns-dev.pem');
/*Distributer pam file*/
stream_context_set_option($ctx, 'ssl', 'local_cert', your path.'apns-distr.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
/*For Development pam file*/
//$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $ctx);
/*For Distributer pam file*/
$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
exit("Failed to connect amarnew: $err $errstr" . PHP_EOL);
$body['aps'] = array(
'alert' => $message,
'sound' => 'default'
);
$body['type'] = $params['type'];
$body['params'] = $params;
$payload = json_encode($body);
$msg = chr(0) . pack('n', 32) . pack('H*', $devicetoken) . pack('n', strlen($payload)) . $payload;
$result = fwrite($fp, $msg, strlen($msg));
if (!$result) {
return false;
} else {
return true;
}
fclose($fp);
}
相關問題
- 1. iphone推送通知隨機發送
- 2. 從python發送推送通知到iphone
- 3. iPhone推送通知
- 4. 推送通知?Iphone
- 5. iPhone推送通知
- 6. 推送通知iPhone
- 7. iPhone - 推送通知
- 8. 從PHP發送iOS推送通知
- 9. 發送推送通知給我的Iphone PHP
- 10. PHP - 推送通知
- 11. 推送通知不從環回發送
- 12. 不能發送解析推送通知
- 13. 推送通知iPhone與Apns PHP
- 14. iphone推送通知觸發方法
- 15. Devicetoken的iphone推送通知?
- 16. ejabberd mod_offline iphone推送通知
- 17. iPhone推送通知urbanairship
- 18. iPhone推送通知程序
- 19. Iphone推送通知問題
- 20. 推送通知爲iphone
- 21. 推送通知爲iPhone
- 22. 推送通知查看iPhone
- 23. 推送通知與iPhone
- 24. 多推送通知 - iPhone
- 25. iphone上的推送通知與推送通知
- 26. 通過PHP推送通知?
- 27. APNS不發送響應,也不發送推送通知
- 28. 如何通過iphone應用發送單個推送通知?
- 29. 是否通過HTTP或HTTPS發送iPhone推送通知?
- 30. 發送通用推送通知 - Xcode
太棒了,確實是對的! –