个推消息推送RestAPI版

1.权鉴获取Token

 /**
     * 个推获取权鉴Token
     * @return bool
     */
    public static function getAuthToken()
    {
        require_once(__DIR__ . '/../../common/libs/requests/library/Requests.php');
        \Requests::register_autoloader();
        $headers = array(
            'Content-Type' => 'application/json'
        );
        $appID = Yii::$app->params['gt_app_id'];
        $appKey = Yii::$app->params['gt_app_key'];
        $timestamp = Func::getMsecTime();
        $masterSecret = Yii::$app->params['gt_master_secret'];
        $sign = hash('sha256',$appKey.$timestamp.$masterSecret);
        $data = [
            'sign' => $sign,
            'timestamp' => $timestamp,
            'appkey' => $appKey
        ];
        $jsonData = json_encode($data);
        $postUrl = 'https://restapi.getui.com/v1/'.$appID.'/auth_sign';
        $response = \Requests::post($postUrl, $headers, $jsonData);
        $postData = json_decode($response->body);
        if($postData->result == 'ok'){
            return $postData->auth_token;
        }else{
            return false;
        }
    }

2.向客户端推送消息

/**
     * 向客户端推送消息
     * @param $title
     * @param $content
     * @return bool
     */
    public static function pushMessage($title,$content)
    {
        require_once(__DIR__ . '/../../common/libs/requests/library/Requests.php');
        \Requests::register_autoloader();
        $authToken = Func::getAuthToken();
        $headers = array(
            'Content-Type' => 'application/json',
            'authtoken' => $authToken
        );
        $data = [
            'message' => [
                'appkey' => Yii::$app->params['gt_app_key'],
                'is_offline' => false,
                'msgtype' => 'notification',
            ],
            //参数:link notification
            'notification' => [
                'style' => [
                    'type' => 0,
                    'text' => $content,
                    'title' => $title,
                    'logourl' => 'http://bazhua.igexin.com/file/201908/upload_fe428cf5b8a24e68b3bd9aa2850ef37b.png'
                ],
                //'url' => 'http://www.baidu.com',
            ],
            'requestid' => Func::GenSecret(20,1)
        ];
        $jsontData = json_encode($data);
        $response = \Requests::post('https://restapi.getui.com/v1/'.Yii::$app->params['gt_app_id'].'/push_app', $headers, $jsontData);
        $postData = json_decode($response->body);
        if($postData->result == 'ok'){
            return true;
        }else{
            return false;
        }
    }

 

转载于:https://my.oschina.net/sumiao/blog/3093163

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值