开发者社区> 问答> 正文

移动推送,书写api接口,提示Your account is not enabled or in debt.这个是什么原因

按照阿里云上的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;
}

}

展开
收起
凌风凡 2016-09-18 16:20:34 5999 0
1 条回答
写回答
取消 提交回答
  • 旺旺:nectar2。

    您好,

    看原文提示,有可能是账户没有开通此产品功能或欠费喔。

    2019-07-17 20:10:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载