阿里云移动推送
2017-06-06 本文已影响603人
hyperbolaa
IOS推送代码示例
public static function iosMsg($title,$body,$uid){
// 设置你自己的AccessKeyId/AccessSecret/AppKey
$accessKeyId = self::ACCESS_KEY_ID;
$accessKeySecret = self::ACCESS_KEY_SECRET;
$appKey = self::APP_KEY;
$iClientProfile = \DefaultProfile::getProfile("cn-hangzhou", $accessKeyId, $accessKeySecret);
$client = new \DefaultAcsClient($iClientProfile);
$request = new Push\PushNoticeToiOSRequest();
// 推送目标
$request->setAppKey($appKey);
$request->setTarget("ACCOUNT"); //推送目标: DEVICE:推送给设备; ACCOUNT:推送给指定帐号,TAG:推送给自定义标签; ALL: 推送给全部
$request->setTargetValue($uid); //根据Target来设定,如Target=device, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
$request->setApnsEnv("DEV");//iOS的通知是通过APNS中心来发送的,需要填写对应的环境信息. DEV :表示开发环境, PRODUCT: 表示生产环境
$request->setBody($body); // 消息的内容
$request->setExtParameters("{\"uid\":\"$uid\",\"api_name\":\"PushNoticeToiOSRequest\"}");
$client->getAcsResponse($request);
}
android代码示例
public static function androidMsg($title,$body,$uid){
// 设置你自己的AccessKeyId/AccessSecret/AppKey
$accessKeyId = self::ACCESS_KEY_ID;
$accessKeySecret = self::ACCESS_KEY_SECRET;
$appKey = self::APP_KEY;
$iClientProfile = \DefaultProfile::getProfile("cn-hangzhou", $accessKeyId, $accessKeySecret);
$client = new \DefaultAcsClient($iClientProfile);
$request = new Push\PushNoticeToAndroidRequest();
// 推送目标
$request->setAppKey($appKey);
$request->setTarget("ACCOUNT"); //推送目标: DEVICE:推送给设备; ACCOUNT:推送给指定帐号,TAG:推送给自定义标签; ALL: 推送给全部
$request->setTargetValue($uid); //根据Target来设定,如Target=device, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
$request->setTitle($title); // 消息的标题
$request->setBody($body); // 消息的内容
$request->setExtParameters("{\"uid\":\"$uid\",\"api_name\":\"PushNoticeToAndroidRequest\"}");
$client->getAcsResponse($request);
}
备注
问题疑点:
1:setTarget 三个值的作用,【控制接收消息的设备】
DEVICE:填写手机的设备ID
ACCOUNT: 填写手机的别名
ALL: 所有的手机
2: setTargetValue 值的填写
DEVICE: 设备ID1,设备ID2.....
ACCOUNT: 手机别名1,手机别名2......
ALL: ALL
3: setExtParameters 设置的额外参数,开发者拓展使用