公司客戶端選定的友盟消息推送,PHP文檔不多,本身踩坑很多:php
<?php namespace Notification; //引入核心文件 require_once('./Application/Common/Lib/notification/android/AndroidBroadcast.php'); require_once('./Application/Common/Lib/notification/android/AndroidFilecast.php'); require_once('./Application/Common/Lib/notification/android/AndroidGroupcast.php'); require_once('./Application/Common/Lib/notification/android/AndroidUnicast.php'); require_once('./Application/Common/Lib/notification/android/AndroidCustomizedcast.php'); require_once('./Application/Common/Lib/notification/android/AndroidListcast.php'); require_once('./Application/Common/Lib/notification/ios/IOSBroadcast.php'); require_once('./Application/Common/Lib/notification/ios/IOSFilecast.php'); require_once('./Application/Common/Lib/notification/ios/IOSGroupcast.php'); require_once('./Application/Common/Lib/notification/ios/IOSUnicast.php'); require_once('./Application/Common/Lib/notification/ios/IOSCustomizedcast.php'); require_once('./Application/Common/Lib/notification/ios/IOSListcast.php'); class Sms { protected $appkey = NULL; protected $appMasterSecret = NULL; protected $timestamp = NULL; protected $validation_token = NULL; function __construct($key, $secret) { //android $this->andkey = 'andriodkey'; $this->andMasterSecret = 'andriodsecret'; //ios $this->ioskey = 'ioskey'; $this->iosMasterSecret = 'iossecret'; $this->timestamp = strval(time()); } /** * Android推送—廣播 * @param $title string 推送消息標題 * @param $content string 推送消息內容 * @return mixed */ function sendAndroidBroadcast($title, $content) { try { $brocast = new \AndroidBroadcast(); $brocast->setAppMasterSecret($this->andMasterSecret); $brocast->setPredefinedKeyValue("appkey", $this->andkey); $brocast->setPredefinedKeyValue("timestamp", $this->timestamp); $brocast->setPredefinedKeyValue("ticker", "Android broadcast ticker"); $brocast->setPredefinedKeyValue("title", $title); $brocast->setPredefinedKeyValue("text", $content); $brocast->setPredefinedKeyValue("after_open", "go_app"); $brocast->setPredefinedKeyValue("production_mode", "true"); $brocast->setExtraField("test", "helloworld"); return $brocast->send(); } catch (Exception $e) { print("Caught exception: " . $e->getMessage()); } } /** * Android推送—單播 * @param $title string 推送消息標題 * @param $content string 推送消息內容 * @param $tokens array 設備的token值 * @return mixed */ function sendAndroidUnicast($title, $content, $tokens) { try { $unicast = new \AndroidUnicast(); $unicast->setAppMasterSecret($this->andMasterSecret); $unicast->setPredefinedKeyValue("appkey", $this->andkey); $unicast->setPredefinedKeyValue("mipush", true); $unicast->setPredefinedKeyValue("mi_activity", 'cn.weidijia.pccm.ui.activity.SplashActivity'); $unicast->setPredefinedKeyValue("timestamp", $this->timestamp); $unicast->setPredefinedKeyValue("device_tokens", $tokens); $unicast->setPredefinedKeyValue("ticker", "Android unicast ticker"); $unicast->setPredefinedKeyValue("title", $title); $unicast->setPredefinedKeyValue("text", $content); $unicast->setPredefinedKeyValue("after_open", "go_app"); $unicast->setPredefinedKeyValue("production_mode", "true"); $unicast->setExtraField("test", "helloworld"); return $unicast->send(); } catch (Exception $e) { print("Caught exception: " . $e->getMessage()); } } /* * android自定義 * */ function sendAndroidCustomizedcast($alias, $alias_type, $ticker, $title, $text) { try { $customizedcast = new \AndroidCustomizedcast(); $customizedcast->setAppMasterSecret($this->andMasterSecret); $customizedcast->setPredefinedKeyValue("appkey", $this->andkey); $customizedcast->setPredefinedKeyValue("timestamp", $this->timestamp); $customizedcast->setPredefinedKeyValue("alias", $alias); $customizedcast->setPredefinedKeyValue("alias_type", $alias_type); $customizedcast->setPredefinedKeyValue("ticker", $ticker); $customizedcast->setPredefinedKeyValue("title", $title); $customizedcast->setPredefinedKeyValue("text", $text); $customizedcast->setPredefinedKeyValue("after_open", "go_app"); return $customizedcast->send(); } catch (Exception $e) { print("Caught exception: " . $e->getMessage()); } } /** * IOS推送—廣播 * @param $title string 推送消息標題 * @param $content string 推送消息內容 * @return mixed */ function sendIOSBroadcast($title, $content) { try { $brocast = new \IOSBroadcast(); $brocast->setAppMasterSecret($this->iosMasterSecret); $brocast->setPredefinedKeyValue("appkey", $this->ioskey); $brocast->setPredefinedKeyValue("timestamp", $this->timestamp); $brocast->setPredefinedKeyValue("alert", $title); $brocast->setPredefinedKeyValue("badge", 0); $brocast->setPredefinedKeyValue("sound", "chime"); $brocast->setPredefinedKeyValue("production_mode", "false"); $brocast->setCustomizedField("test", $content); return $brocast->send(); } catch (Exception $e) { print("Caught exception: " . $e->getMessage()); } } /** * IOS推送—單播 * @param $title string 推送消息標題 * @param $content string 推送消息內容 * @param $tokens array 設備的token值 * @return mixed */ function sendIOSUnicast($title, $content, $tokens) { try { $unicast = new \IOSUnicast(); $unicast->setAppMasterSecret($this->iosMasterSecret); $unicast->setPredefinedKeyValue("appkey", $this->ioskey); $unicast->setPredefinedKeyValue("timestamp", $this->timestamp); $unicast->setPredefinedKeyValue("device_tokens", $tokens); $unicast->setPredefinedKeyValue("alert", $title); $unicast->setPredefinedKeyValue("badge", 0); $unicast->setPredefinedKeyValue("sound", "chime"); $unicast->setPredefinedKeyValue("production_mode", "false"); $unicast->setCustomizedField("test", $content); return $unicast->send(); } catch (Exception $e) { print("Caught exception: " . $e->getMessage()); } } /* * IOS自定義 * */ function sendIOSCustomizedcast($alias, $alias_type, $ticker, $title, $text) { $alert = [ "title" => $title, "subtitle" => $ticker, "body" => $text ]; try { $customizedcast = new \IOSCustomizedcast(); $customizedcast->setAppMasterSecret($this->iosMasterSecret); $customizedcast->setPredefinedKeyValue("appkey", $this->ioskey); $customizedcast->setPredefinedKeyValue("timestamp", $this->timestamp); $customizedcast->setPredefinedKeyValue("alias", $alias); $customizedcast->setPredefinedKeyValue("alias_type", $alias_type); $customizedcast->setPredefinedKeyValue("alert", $alert); $customizedcast->setPredefinedKeyValue("badge", 0); $customizedcast->setPredefinedKeyValue("sound", "chime"); $customizedcast->setPredefinedKeyValue("production_mode", "false"); return $customizedcast->send(); } catch (Exception $e) { print("Caught exception: " . $e->getMessage()); } } }
andriod和ios使用不一樣的key和secret,申請就好.下載的demo裏面沒有列播,網上也沒有資料,客服就更別說了...android
protected $DATA_KEYS = array("appkey", "timestamp", "type", "device_tokens", "alias", "alias_type", "file_id", "filter", "production_mode", "feedback", "description", "thirdparty_id", "mipush", "mi_activity");
友盟U-push參數解析ios
3.使用下載的官方demo必定要吧print都註釋掉.c#
第一篇寫的很亂,很差意思api