IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP对接环信im -> 正文阅读

[PHP知识库]PHP对接环信im

class Chat 
{
    protected $org_name = 'xxx';
    protected $app_name = 'demo';
    protected $grant_type = 'XXXX';
    protected $client_id = 'XXXX';
    protected $client_secret = 'XXXX';
    protected $RESTApi = 'http://a1.easemob.com/';


    //header token
    public function access_token(){
        session_start();
        $_SESSION['expires_in'] =  $_SESSION['expires_in'] ?? null; dd($_SESSION);
        if(time()< $_SESSION['expires_in']) $token= $_SESSION['token'];
        if(time()> $_SESSION['expires_in']) {
            $_SESSION['expires_in']=  $_SESSION['token'] = null;
            $data = [
                'grant_type' => $this->grant_type,
                'client_id' => $this->client_id,
                'client_secret' => $this->client_secret,
            ];
            $url = $this->RESTApi . $this->org_name . '/' . $this->app_name . '/token'; 
            $data = json_encode($data);
            $result = $this->httpsCurl($url, $data, 'POST');
            $result = json_decode($result, true);

            $_SESSION['expires_in'] = time() + $result['expires_in'];
            $_SESSION['token'] = $result['access_token'];

            $token =$_SESSION['token'];
        }
        return $token;
    }

    //注册用户
    public function registerUser()
    {
        $url = $this->RESTApi.$this->org_name.'/'.$this->app_name.'/users';
        $data = [
            'username'=>'11111',
            'password'=>'123456',
        ];
        $data = json_encode($data);
        $token = $this->access_token();

        $result =  $this->postCurlHeader($url,$token,$data);
        $result = json_decode($result,true);
        if(empty($result['path'])) return echoArr(0,'注册失败');
        return echoArr(1,'注册成功');
    }

    // 发送消息-文本
    public function seedMessage()
    {
        $url = $this->RESTApi.$this->org_name. '/' .$this->app_name.'/messages';
        $token = $this->access_token();

         $data = [
            'target_type'=>'users',
            'target'=>["1570845"],
            'msg'=>[
                'type'=>'txt',
                'msg'=>'testmessage',
            ],
            'from'=>'1570845',
        ];
         $data = json_encode($data);
        $result = $this->postCurlHeader($url,$token,$data); ;
        $result = json_decode($result,true);
        if(!empty($result['path']))  return echoArr(0,'发送失败');

        return echoArr(1,'注册成功');
    }

    /**
     *  curl post 请求 不带header
     *
     */
    public function httpsCurl($url,$data='',$method='GET')
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL,$url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($curl, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
        if($method=='POST')
        {
            curl_setopt($curl, CURLOPT_POST, 1);
            if ($data !='')
            {
                curl_setopt($curl, CURLOPT_POSTFIELDS,$data);
            }
        }

        curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        curl_setopt($curl, CURLOPT_HEADER, 0);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        curl_close($curl);
        return $result;
    }

    /**
     * curl post header
     * @param $url
     * @param $token
     * @param $data
     * @return bool|string
     */
    public function postCurlHeader($url,$token,$data)
     {
         $curl = curl_init();

         curl_setopt_array($curl, array(
             CURLOPT_URL => $url,
             CURLOPT_RETURNTRANSFER => true,
             CURLOPT_ENCODING => "",
             CURLOPT_MAXREDIRS => 10,
             CURLOPT_TIMEOUT => 0,
             CURLOPT_FOLLOWLOCATION => true,
             CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
             CURLOPT_CUSTOMREQUEST => "POST",
             CURLOPT_POSTFIELDS =>  $data,
             CURLOPT_HTTPHEADER => array(
                 "Authorization: Bearer ".$token,
                 "Content-Type: application/json",
                 "Accept: application/json"
             ),
         ));

         $response = curl_exec($curl);

         curl_close($curl);

         return  $response;
     }

    public function mytestAction($url,$token,$postBody=[]){
//        $appkey='123';
//        $appSecret='456';

        $headers = array();
        $headers[] = "Authorization:Bearer ".$token;
        $headers[] = "Content-Type:application/json";

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);//设置请求头
        curl_setopt($curl, CURLOPT_HTTPGET, true);
//        curl_setopt($curl, CURLOPT_POSTFIELDS, $postBody);//设置请求体
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');//使用一个自定义的请求信息来代替"GET"或"HEAD"作为HTTP请求。(这个加不加没啥影响)
        $data = curl_exec($curl);
        return $data;
    }

}
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:11:34  更:2021-11-10 12:12:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:33:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码