PHP-小米推送-服務端


SDK下載地址:https://dev.mi.com/mipush/downpage/

在WWW創建miPush,把SDK解壓到WWW/miPush

我這邊可能會有2種推送方法,使用 sendType 字段 實現,直接看代碼:(我創建的接口名:gsw_android_mipush)

<?php
use xmpush\Builder;
use xmpush\Sender;
use xmpush\Constants;

include_once(dirname(__FILE__) . '/autoload.php');

// http://127.0.0.1/mipush/gsw_android_mipush.php?sendType=0&notifyId=0&userAccount=&title=標題111&desc=內容222&payload=          // 給全部用戶發送
// http://127.0.0.1/mipush/gsw_android_mipush.php?sendType=1&notifyId=0&userAccount=123,333&title=標題333&desc=內容444&payload=   // 群發給123,333

$sendType = $_GET['sendType'];          //   0→向所有設備發送消息      1→指定userAccount群發
$notifyId = $_GET['notifyId'];          //   通知編號       相同編號的通知會互相覆蓋
$userAccount = $_GET['userAccount'];    //   指定userAccount群發 的 userAccount數組   1000次/s     單條消息體最多攜帶1000個設備ID
$title = $_GET['title'];                //   推送標題
$desc = $_GET['desc'];                  //   推送內容
$payload = $_GET['payload'];            //   推送攜帶數據→鍵值對     暫時用不到

$push = new \push();                                                            // 實例化下面的類
$push->pushFun($sendType, $notifyId, $userAccount, $title, $desc, $payload);     // 調用函數

echo "<br><br>"."sendType = ".$sendType."<br>"."notifyId = ".$notifyId."<br>"."title = ".$title."<br>"."desc = ".$desc."<br>"."payload = ".$payload."<br><br>";  // 打印主要參數
var_dump($userAccount); // 打印 userAccount數組

class push
{
    public function pushFun($style,$notifyId,$userAccount,$title,$desc,$payload)
    {
        $secret = 'xxxxxxxxxxxx';      // XX 小米推送秘鑰
        $package = 'com.xxxxx';        // XX 包名
        Constants::setPackage($package);        // 常量設置必須在new Sender()方法之前調用
        Constants::setSecret($secret);          // 常量設置必須在new Sender()方法之前調用
        $sender = new Sender();
        $message1 = new Builder();
        $message1->title($title);                           // 通知欄的title
        $message1->description($desc);                      // 通知欄的descption
        $message1->passThrough(0);            // 這是一條通知欄消息,如果需要透傳,把這個參數設置成1,同時去掉title和descption兩個參數
        $message1->payload($payload);                       // 攜帶的數據,點擊后將會通過客戶端的receiver中的onReceiveMessage方法傳入。
        $message1->extra(Builder::notifyForeground, 1);     // 應用在前台是否展示通知,如果不希望應用在前台時候彈出通知,則設置這個參數為0
        $message1->notifyId((int)$notifyId);                // 通知類型。最多支持0-4 5個取值范圍,同樣的類型的通知會互相覆蓋,不同類型可以在通知欄並存   左邊的官方文檔,實際測試,隨便取值0-9999999都可以。
        $message1->build();
        $id = (int)$style;
        if ($id == 0) {
            print_r($sender->broadcastAll($message1)->getRaw());                        // 向所有設備發送消息。
        }else if ($id == 1){
            print_r($sender->sendToUserAccount($message1, $userAccount)->getRaw());     // 指定userAccount群發。userAccount:Android端自定義,10個設備可是使用相同的userAccount,第11個設備會頂掉第1個設備
        }
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM