ric*_*son 12 iphone push push-notification apple-push-notifications
我写了一个测试php页面,它只发送一个通用推送通知,它间歇性地工作.有时它会传递消息,有时我会收到此错误:
"消息:stream_socket_client()[function.stream-socket-client]:无法设置本地证书链文件`/var/www/ninerobot.com/public/mlb/certs/mlbtr-push-dev.pem';检查一下您的cafile/capath设置包括您的证书及其发行人的详细信息"
你知道我怎么解决这个问题吗?
我在Apple的文档中看到它说:"注意:要与APN建立TLS会话,必须在提供商的服务器上安装Entrust Secure CA根证书.如果服务器运行的是Mac OS X,则此根证书已在密钥链中在其他系统上,证书可能不可用.您可以从Entrust SSL证书网站下载此证书." 这是否意味着我需要做的事情?
小智 15
我也有更多努力去做同样的事情.最终我找到了通过PHP全局网址发送推送通知的解决方案.请尝试以下步骤.在此之前,我希望你们都知道生成3个证书,即PushChat.certSigningRequest,pushkey.p12和aps_development.cer(csr,p12,cer)
打开终端并一步一步运行以下命令:
# Make sure terminal refers your correct certificate path.
$ cd ~/Desktop/
# Ask system administrator to open if its not connected
$ telnet gateway.sandbox.push.apple.com 2195
Trying 17.110.227.35...
Connected to gateway.sandbox.push-apple.com.akadns.net.
Escape character is '^]'.
# Convert .cer to .pem
$ openssl x509 -in aps_development.cer -inform der -out PushCert.pem
# Convert .p12 to .pem. Enter your pass pharse which is the same pwd that you have given while creating the .p12 certificate. PEM pass phrase also same as .p12 cert.
$ openssl pkcs12 -nocerts -out PushKey1.pem -in pushkey.p12
Enter Import Password:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
# To remove passpharse for the key to access globally. This only solved my stream_socket_client() & certificate capath warnings.
$ openssl rsa -in PushKey1.pem -out PushKey1_Rmv.pem
Enter pass phrase for PushChatKey1.pem:
writing RSA key
# To join the two .pem file into one file:
$ cat PushCert.pem PushKey1_Rmv.pem > ApnsDev.pem
Run Code Online (Sandbox Code Playgroud)
然后最后将SimplePush.php移动到ApnsDev.pem文件位置.两个文件都在同一个文件夹中.并更改设备令牌,密码短语,证书名称(ApnsDev.pem),消息...在simplepush.php中使用以下URL下载文件. http://d1xzuxjlafny7l.cloudfront.net/downloads/SimplePush.zip 然后在终端或域服务器中执行文件
$ php simplepush.php
Run Code Online (Sandbox Code Playgroud)
要么
www.Domainname.com/push/simplepush.php // Now, url shows 'Connected to APNS Message successfully delivered'.
Run Code Online (Sandbox Code Playgroud)
多数民众赞成,推送通知将飞行并到达特定的IOS设备.
如果你想发送'Badge'然后在simplepush.php中更改有效负载代码,如下所示,
// Construct the notification payload body:
$badge = 1;
$sound = 'default';
$body = array();
$body['aps'] = array('alert' => $message);
if ($badge)
$body['aps']['badge'] = $badge;
if ($sound)
$body['aps']['sound'] = $sound;
// End of Configurable
// Encode the payload as JSON:
$payload = json_encode($body);
Run Code Online (Sandbox Code Playgroud)
现在再次运行php文件,应用程序图标出现,徽章编号为红色圆圈.
| 归档时间: |
|
| 查看次数: |
15732 次 |
| 最近记录: |