按照阿里云上的api文档里面的demo操作的,accesskey,assessScrict,appkey都是对的,现在求大神帮帮我
class AlipushApi
{
private $accessKeyId="i**********eeeee";
private $accessSecret ="*******IS******N*****";
private $appKey="2*********9";
public function pushmsg($title,$content,$summary){
require_once 'ThinkPHP/Library/Vendor/aliyun-openapi-php-sdk-master/aliyun-php-sdk-core/Config.php';
$iClientProfile=\DefaultProfile::getProfile("cn-hangzhou",$this->accessKeyId,$this->accessSecret);
$client=new \DefaultAcsClient($iClientProfile);
$request=new Push\PushRequest();
// 推送目标
$request->setAppKey($this->appKey);
$request->setTarget("all"); //推送目标: device:推送给设备; account:推送给指定帐号,tag:推送给自定义标签; all: 推送给全部
$request->setTargetValue("all"); //根据Target来设定,如Target=device, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
$request->setDeviceType(3); // 设备类型deviceType 取值范围为:0~3. iOS设备: 0; Android设备: 1; 全部: 3, 这是默认值.
// 推送配置
$request->setType(1); // 0:表示消息(默认为0), 1:表示通知
$request->setTitle($title); // 消息的标题
$request->setBody($content); // 消息的内容
$request->setSummary($summary); // 通知的摘要
// 推送配置: iOS
$request->setiOSBadge("5"); // iOS应用图标右上角角标
$request->setiOSMusic("default"); // iOS通知声音
$request->setiOSExtParameters("{\"k1\":\"ios\",\"k2\":\"v2\"}"); //自定义的kv结构,开发者扩展用 针对iOS设备
$request->setApnsEnv("DEV");
//$request->setRemind("false"); // 推送时设备不在线(既与移动推送的服务端的长连接通道不通),则这条推送会做为通知,通过苹果的APNs通道送达一次(发送通知时,Summary为通知的内容,Message不起作用)。注意:离线消息转通知仅适用于生产环境
// 推送配置: Android
$request->setAndroidOpenType("3"); // 点击通知后动作,1:打开应用 2: 打开应用Activity 3:打开 url 4 : 无跳转逻辑
$request->setAndroidOpenUrl("http://www.baidu.com"); // Android收到推送后打开对应的url,仅仅当androidOpenType=3有效
//$request->setsetXiaomiActivity("_Your_XiaoMi_Activity_");//设置该参数后启动小米托管弹窗功能,此处指定通知点击后跳转的Activity(托管弹窗的前提条件:1. 继承小米辅助通道;2. storeOffLine设为true)
$request->setAndroidExtParameters("{\"k1\":\"android\",\"k2\":\"v2\"}"); // 设定android类型设备通知的扩展属性
// 推送控制
$pushTime = gmdate('Y-m-d\TH:i:s\Z', strtotime('+3 second'));//延迟3秒发送
$request->setPushTime($pushTime);
$expireTime = gmdate('Y-m-d\TH:i:s\Z', strtotime('+1 day'));//设置失效时间为1天
$request->setExpireTime($expireTime);
$request->setTimeOut(3);
$request->setStoreOffline("true"); // 离线消息是否保存,若保存, 在推送时候,用户即使不在线,下一次上线则会收到
$request->setBatchNumber("100010"); // 批次编号,用于活动效果统计. 设置成业务可以记录的字符串
$response = $client->getAcsResponse($request);
return $response;
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。