首先要明白php對接極光推送要做些什么,極光推送的大致流程是:你的服務器----->極光服務器------>app端。而php要做的就只有我們的服務器到極光服務器這個過程。極光服務器到app端需要app的開發人員去配置就行了。
操作步驟:
1.注冊極光推送的賬號,然后創建你要推送的應用。
2.app端集成極光推送,在極光后台完成推送設置。
3.下載極光推送PHP SDK: http://docs.jiguang.cn/jpush/guideline/intro/
4.將下載好的包解壓放在項目的擴展類庫目錄中(如tp的extend)
5.將推送方法寫入公共函數中,方便調用,如下所示:
/*
* 向所有用戶設備推送消息
* $message 需要推送的消息
*/
function SendAll($message){
require_once(BASE_RESOURCE_PATH.DS.'JPush1'.DS.'JPush.php');
$client->appKey='你的appkey';
$client->masterSecret='你的masterSecret';
$result = $client->push()
->setPlatform('all')
->addAllAudience()
->setNotificationAlert($message) //你要推送的信息
->send();
echo json_encode($result); //返回發送結果
}
/**
* 向指定設備推送消息
*/
function sendSpecial($regid,$message){
require_once(BASE_RESOURCE_PATH.DS.'JPush1'.DS.'JPush.php');//引入框架加載包,有的版
//本是autoload.php
$client->appKey='你的APPKey';
$client->masterSecret='你的masterSecret';
$client = new JPush($app_key,$master_secret);
$result = $client->push()->setPlatform('all') //設備:all表示所有,可以是
// ios/android
->addRegistrationId($regid) //你要推送的設備號/用戶(registrationID)
->setNotificationAlert($message)
->send();
echo json_encode($result);
}
以上就是簡單的推送消息的方法,適用於我目前的框架,因為目前做的項目框架不支持命名空間的寫法,所以用的極光 推送是之前的老版本,新版本的寫法也是差不多的。
6. 寫好推送方法之后需要和app端配合,app端會在用戶登錄之后將設備id也就是registrationID傳給你,所以你可能需要寫一個接口來接收這個registrationID,同時還可以將當前用戶的登錄id一起傳回來,可以當做alias(別名)使用,你還可以給每個用戶設定一個標簽(tag),標簽的作用是用來群發消息的,比如用戶性別是“男”’的,你可以給每個性別為“男”的用戶打上相同的標簽,下次推送的時候只要設置推送標簽就可以只推送給性別為“男”’的設備(用戶)。
7.app傳回來的registrationID和用戶id(也可以是其他表示用戶唯一表示的字段),再給每個用戶設置一個alias(傳回來的用戶ID)和tag(根據需求設定),一起存入數據庫中,需要新建一張表和用戶表關聯起來。
8.到這里簡單的推送基本完成了,如果要推送指定用戶只需要在新建的表里面根據用戶唯一表示將設備id找出來,然后放入上面第二個方法中就可以了。
有一個問題就是,如果方法寫好了,然后推送給所有用戶的時候,只有安卓能收到,而ios不能收到,則可能需要更改包里面的option參數:apns_production,false是ios的開發環境,true是生產環境。
---------------------
作者:月染指上
來源:CSDN
原文:https://blog.csdn.net/qq_36515500/article/details/81216364
https://blog.csdn.net/Zhihua_W/article/details/52197611
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!