专栏首页编程录个推消息推送RestAPI版

个推消息推送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;
        }
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • cloudflare视频转码接口

    素描
  • Yii2数据字段自动累加

    文章一般都有统计浏览次数的需求,一般小型项目的做法就是直接 update 数据库中的某个字段。在 Yii 中怎么实现呢?请往下看

    素描
  • Yii2关联查询起别名

    素描
  • 如何用Python和深度神经网络识别图像?

    视觉 进化的作用,让人类对图像的处理非常高效。 这里,我给你展示一张照片。 如果我这样问你: 你能否分辨出图片中哪个是猫,哪个是狗? 你可能立即会觉得自己遭受到...

    企鹅号小编
  • 刷新自己,继续前行

    在我的笔记经历中,我会把100天当做一轮来看待,每完成一轮我都会标记为r1,r2这样的前缀(r就是round的意思),直到这个r22即将到来,对我来说,最艰难的...

    jeanron100
  • Dubbo面试题锦集

    1、默认使用的是什么通信框架,还有别的选择吗2、服务调用是阻塞的吗? 3、一般使用什么注册中心?还有别的选择吗? 4、默认使用什么序列化框架,你知道的还有哪些?...

    Java技术栈
  • 你可能不信,我看pornhub是为了拯救大熊猫和乳腺癌,还有学python

    源 / 顶级程序员 文 / 奶糖 China NO. 1! 这一次,我们伟大祖国再次拿下了一个世界第一。 我们成为全球最大色情网站Pornhub,在线观...

    顶级程序员
  • 前端应该要掌握的几种手写代码实现

    https://juejin.im/post/5e24590ef265da3e152d27bc

    前端迷
  • 帮你找好图!99%的互联网从业者都要学会的图片搜寻方法

    收藏了十几个图库,依然搜不到好图片?那就别错过今天这个教程!这个「图片搜索」系列,不仅教你学会如何榨干一个优秀的图库,而且还附上了那些无法另存的图片的下载方法,...

    前朝楚水
  • 如何用Python和深度神经网络寻找近似图片?

    给你10万张图片,让你从中找出与某张图片最为近似的10张,你会怎么做?不要轻言放弃,也不用一张张浏览。使用Python,你也可以轻松搞定这个任务。

    用户2930930

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动