如何使用php curl在Firefox中发送推送消息
发布时间:2020-12-13 16:59:30 所属栏目:PHP教程 来源:网络整理
导读:我已经为Chrome实现了推送通知,当我需要向GCM发送推送消息时,我使用了以下 PHP函数: function send_push_message($subscription_ids){ // Set GCM endpoint $url = 'https://android.googleapis.com/gcm/send'; $fields = array( 'registration_ids' = $sub
我已经为Chrome实现了推送通知,当我需要向GCM发送推送消息时,我使用了以下
PHP函数:
function send_push_message($subscription_ids){ // Set GCM endpoint $url = 'https://android.googleapis.com/gcm/send'; $fields = array( 'registration_ids' => $subscription_ids,); $headers = array( 'Authorization: key=API_KEY','Content-Type: application/json' ); $ch = curl_init(); // Set the url,number of POST vars,POST data curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,true); curl_setopt($ch,CURLOPT_HTTPHEADER,$headers); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($fields)); // Execute post $result = curl_exec($ch); if ($result === FALSE) { die('Push msg send failed in curl: ' . curl_error($ch)); } // Close connection curl_close($ch); } (我以前存储过订阅) 我想我可以使用这个url:https://updates.push.services.mozilla.com/push为Firefox做这样的事情 但我不知道自己要做什么. 我需要在Mozilla注册我的网站才能做到这一点,就像谷歌一样吗? 请帮忙! 解决方法
我自己的解决方案,(一位同事帮助解决了我对mozilla的卷曲请求中的错误),现在正在运行
function send_push_message($subscriptionIDs){ if (empty($subscriptionIDs)) return FALSE; $chs = $sChrome = array(); $mh = curl_multi_init(); foreach ($subscriptionIDs as $subscription){ $i = count($chs); switch ($subscription["browser"]){ case "firefox": $chs[ $i ] = curl_init(); curl_setopt($chs[ $i ],"https://updates.push.services.mozilla.com/push/".$subscription["id"] ); curl_setopt($chs[ $i ],CURLOPT_PUT,TRUE); curl_setopt($chs[ $i ],array( "TTL: 86400" ) ); curl_setopt($chs[ $i ],FALSE); curl_multi_add_handle($mh,$chs[ $i ]); break; case "chrome": $sChrome[] = $subscription["id"]; break; } } if (!empty($sChrome)){ $i = count($chs); $chs[ $i ] = curl_init(); curl_setopt($chs[ $i ],"https://android.googleapis.com/gcm/send" ); curl_setopt($chs[ $i ],TRUE); curl_setopt($chs[ $i ],array( "Authorization: key=MY_KEY","Content-Type: application/json" ) ); curl_setopt($chs[ $i ],FALSE); curl_setopt($chs[ $i ],json_encode( array( "registration_ids" => $sChrome ) ) ); curl_multi_add_handle($mh,$chs[ $i ]); } do { curl_multi_exec($mh,$running); curl_multi_select($mh); } while ($running > 0); for ($i = 0; $i < count($chs); $i++){ curl_multi_remove_handle($mh,$chs[ $i ]); } curl_multi_close($mh); } ($subscriptionIDs是一个包含2个键的数组数组:id和browser) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |