05/06
2018
Tencent XinGe Push Service.
Composer 安装:composer require maxsky/xg-push
, (*2)
信鸽 是腾讯云提供的一款支持百亿级消息的移动 App 推送平台,开发者可以调用 PHP SDK 访问信鸽推送服务。, (*3)
信鸽官网, (*4)
大幅修改了官方提供 PHP SDK,使其更友好。, (*5)
use Tencent\XinGe\XingePush; $xinge = XingePush::Init($AppID, $AppSecret);
我在每个方法的注释中贴上了该方法属于简易推送、基本(普通)推送、高级推送的标签。, (*6)
例如:, (*7)
use Tencent\XinGe\Message\AndroidMsg; use Tencent\XinGe\Message\iOSMsg; // Android 简易推送(通知) $xinge->PushTokenAndroid($deviceToken, '推送标题', '推送内容'); // iOS 简易推送(通知),正式环境将 iOSMsg::IOSENV_DEV 修改为 iOSMsg::IOSENV_PROD // 注意 iOS 和 Android 的 AppID、AppSecret 并不相同,这种情况下需要使用 Init() 方法设置 XingePush::Init($iOSAppID, $iOSAppSecret)->PushTokenIos($deviceToken, '推送标题', '推送内容', iOSMsg::IOSENV_DEV); /** 透传(后台)消息只需将 $messageType 设置为 'message' 即可 */ XingePush::Init($AndroidAppID, $AndroidAppSecret)->PushTokenAndroid($deviceToken, '推送标题', '推送内容', AndroidMsg::TYPE_MESSAGE); XingePush::Init($iOSAppID, $iOSAppSecret)->PushTokenIos($deviceToken, '推送标题', '推送内容', iOSMsg::IOSENV_DEV, iOSMsg::TYPE_REMOTE_MESSAGE);
普通推送是指在简易推送的基础上多了 点击通知行为(Android)和 自定义数据(Android & iOS), (*8)
use Tencent\XinGe\Component\ClickAction; use Tencent\XinGe\Message\AndroidMsg; // ClickAction 数组中,第一个元素为操作类型,第二个为相关数据 // 仅打开 URL 时存在第三个元素,表示打开 URL 是否提示 XingePush::Init($AndroidAppID, $AndroidAppSecret) ->PushAccountAndroid('推送帐号', '推送标题', '推送内容', ['自定义键' => '自定义值'], [ClickAction::TYPE_URL, 'https://m.baidu.com', 1], AndroidMsg::TYPE_NOTIFICATION);
高级推送指完全自定义,存在的方法有如下 6 个:, (*9)
其中所有方法均含有 $message
参数,该参数类型为 AndroidMsg|iOSMsg
,即 Android 或 iOS 的消息体, (*10)
使用方法如下:(以下为 Android 示例,iOS 同理但更简单,无需设置 Style
及ClickAction
), (*11)
use Tencent\XinGe\Component\Style; use Tencent\XinGe\Message\AndroidMsg; use Tencent\XinGe\XingePush; // 实例化 Android 消息类 $message = new AndroidMsg(); // 设置标题、内容 $message->setTitle('我是标题'); $message->setContent('我是一个内容'); // 设置消息类型 $message->setMessageType(AndroidMsg::TYPE_NOTIFICATION); // 实例化 Style 类 $style = new Style(); // 指定应用通知中 Icon 类型。默认 0 为应用本身图标,1 为指定图标资源 // IconType 为 1 时必需设置 IconRes $style->setIconType(1); $style->setIconRes('https://www.maxsky.cc/images/avatar.jpg'); // 实例化 ClickAction 类 $action = new ClickAction(); // 设置操作类型,打开 URL $action->setActionType(ClickAction::TYPE_URL); // 设置类型相关数据,此处为 URL 地址 $action->setUrl('https://m.baidu.com'); // 设置打开 URL 是否提示确认 $action->setConfirmOnUrl(0); // 合并进消息类 $message->setAction($action); $message->setStyle($style); // 设置自定义数据 $message->setCustomData(['key' => 'value']); // 设置富媒体资源地址(目前仅 Android,且只能设置 1 条数据) // 设置后下拉戳开通知栏可以看到该资源 $message->setMediaResources('https://www.maxsky.cc/images/avatar.jpg'); // 设置完成后放进去就可以推送测试了 XingePush::Init($AppID, $AppSecret)->PushSingleAccount('maxsky', $message);