0

0

环信服务端集成(PHP)

php中文网

php中文网

发布时间:2016-07-29 09:05:20

|

2044人浏览过

|

来源于php中文网

原创

magento(麦进斗)
magento(麦进斗)

Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的

下载
<?phpnamespaceHome\Controller;
useThink\Controller;

/**
 * 环信-服务器端REST API
 * @author    limx <limx@xiaoneimimi.com>
 */classHXControllerextendsController {private$client_id='YXA6ef0hcJSyEeWlQg0wFqthDQ';
    private$client_secret='YXA6dd1GuLATzkHcqqTI3OIgLExnOiI';
    private$org_name='ipa361';
    private$app_name='cg';
    private$url = 'https://a1.easemob.com/ipa361/cg/';

    /**
     * 初始化参数
     *
     * @param array $options   
     * @param $options['client_id']        
     * @param $options['client_secret'] 
     * @param $options['org_name']     
     * @param $options['app_name']         
     *//* public function __construct($options) {
        $this->client_id = isset ( $options ['client_id'] ) ? $options ['client_id'] : '';
        $this->client_secret = isset ( $options ['client_secret'] ) ? $options ['client_secret'] : '';
        $this->org_name = isset ( $options ['org_name'] ) ? $options ['org_name'] : '';
        $this->app_name = isset ( $options ['app_name'] ) ? $options ['app_name'] : '';
        if (! empty ( $this->org_name ) && ! empty ( $this->app_name )) {
            $this->url = 'https://a1.easemob.com/' . $this->org_name . '/' . $this->app_name . '/';
        }
    } *//**
     * 开放注册模式
     *
     * @param $options['username'] 用户名         
     * @param $options['password'] 密码
     * 设置密码为账号+_ipa做加密运算
     */publicfunctionopenRegister($username) {$options['username']=$username;
        //$tripldes =new TripledesModel();$tripldes =D("Tripledes");
        $pass= $tripldes->encrypt($username.'_ipa');

         $options['password']=$pass;
        //$options['password']=123456;$url = $this->url . "users";
        $result = $this->postCurl ( $url, $options, $head = 0 );
        //echo $result ;exit;$info = json_decode($result,true);
        //dump($info);//echo $info ;exit;if(isset($info['entities'])){
            return'1';
        }else{
            return'0';
        }
    }

    publicfunctiontest(){$des =D("Tripledes");

        echo$ret = $des->encrypt("123") . "\n";
        echo$des->decrypt($ret) . "\n";

        $info = array(
            'msg'=>'成功',
            'code'=>200,
            'ret'=>$ret,
            'des'=>$des);
        echo json_encode($info);

    }

    /**
     * 授权注册模式 || 批量注册
     *
     * @param $options['username'] 用户名         
     * @param $options['password'] 密码
     *          批量注册传二维数组
     */publicfunctionaccreditRegister($options) {$url = $this->url . "users";
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, $options, $header );
        //return $result;echo$result;
    }

    /**
     * 获取指定用户详情
     *
     * @param $username 用户名            
     */publicfunctionuserDetails($username) {$url = $this->url . "users/" . $username;
        $access_token = $this->getToken ();
        //print_r($access_token);exit;$header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = 'GET' );

        $info = json_decode($result,true);
        //print_r($info);if(isset($info['entities'])){
            return'1';
        }else{
            return'0';
        }
    }

    /**
     * 重置用户密码
     *
     * @param $options['username'] 用户名         
     * @param $options['password'] 密码          
     * @param $options['newpassword'] 新密码          
     */publicfunctioneditPassword($options) {$url = $this->url . "users/" . $options ['username'] . "/password";
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, $options, $header, $type = 'PUT');
        return$result;
    }
    /**
     * 删除用户
     *
     * @param $username 用户名            
     */publicfunctiondeleteUser($username) {$url = $this->url . "users/" . $username;
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = 'DELETE' );
    }

    /**
     * 批量删除用户
     * 描述:删除某个app下指定数量的环信账号。上述url可一次删除300个用户,数值可以修改 建议这个数值在100-500之间,不要过大
     *
     * @param $limit="300" 默认为300条         
     * @param $ql 删除条件
     *          如ql=order+by+created+desc 按照创建时间来排序(降序)
     */publicfunctionbatchDeleteUser($limit = "300", $ql = '') {$url = $this->url . "users?limit=" . $limit;
        if (! empty ( $ql )) {
            $url = $this->url . "users?ql=" . $ql . "&limit=" . $limit;
        }
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = 'DELETE' );
    }

    /**
     * 给一个用户添加一个好友
     *
     * @param
     *          $owner_username
     * @param
     *          $friend_username
     */publicfunctionaddFriend($owner_username, $friend_username) {$url = $this->url . "users/" . $owner_username . "/contacts/users/" . $friend_username;
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header );
    }

    /**
     * 删除好友
     *
     * @param
     *          $owner_username
     * @param
     *          $friend_username
     */publicfunctiondeleteFriend($owner_username, $friend_username) {$url = $this->url . "users/" . $owner_username . "/contacts/users/" . $friend_username;
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "DELETE" );
    }
    /**
     * 查看用户的好友
     *
     * @param
     *          $owner_username
     */publicfunctionshowFriend($owner_username) {$url = $this->url . "users/" . $owner_username . "/contacts/users/";
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "GET" );
    }
    // +----------------------------------------------------------------------// | 聊天相关的方法// +----------------------------------------------------------------------/**
     * 查看用户是否在线
     *
     * @param
     *          $username
     */publicfunctionisOnline($username) {$url = $this->url . "users/" . $username . "/status";
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "GET" );
        //return $result;echo$result;
    }
    /**
     * 发送消息
     *
     * @param string $from_user
     *          发送方用户名
     * @param array $username
     *          array('1','2')
     * @param string $target_type
     *          默认为:users 描述:给一个或者多个用户(users)或者群组发送消息(chatgroups)
     * @param string $content          
     * @param array $ext
     *          自定义参数
     */functionyy_hxSend($from_user = "admin", $username, $content, $target_type = "users", $ext) {$option ['target_type'] = $target_type;
        $option ['target'] = $username;
        $params ['type'] = "txt";
        $params ['msg'] = $content;
        $option ['msg'] = $params;
        $option ['from'] = $from_user;
        $option ['ext'] = $ext;
        $url = $this->url . "messages";
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, $option, $header );
        return$result;
    }
    /**
     * 获取app中所有的群组
     */publicfunctionchatGroups() {$url = $this->url . "chatgroups";
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "GET" );
        return$result;
    }
    /**
     * 创建群组
     *
     * @param $option['groupname'] //群组名称,
     *          此属性为必须的
     * @param $option['desc'] //群组描述,
     *          此属性为必须的
     * @param $option['public'] //是否是公开群,
     *          此属性为必须的 true or false
     * @param $option['approval'] //加入公开群是否需要批准,
     *          没有这个属性的话默认是true, 此属性为可选的
     * @param $option['owner'] //群组的管理员,
     *          此属性为必须的
     * @param $option['members'] //群组成员,此属性为可选的            
     */publicfunctioncreateGroups($option) {$url = $this->url . "chatgroups";
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, $option, $header );
        return$result;
    }
    /**
     * 获取群组详情
     *
     * @param
     *          $group_id
     */publicfunctionchatGroupsDetails($group_id) {$url = $this->url . "chatgroups/" . $group_id;
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "GET" );
        return$result;
    }
    /**
     * 删除群组
     *
     * @param
     *          $group_id
     */publicfunctiondeleteGroups($group_id) {$url = $this->url . "chatgroups/" . $group_id;
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "DELETE" );
        return$result;
    }
    /**
     * 获取群组成员
     *
     * @param
     *          $group_id
     */publicfunctiongroupsUser($group_id) {$url = $this->url . "chatgroups/" . $group_id . "/users";
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "GET" );

        $info = json_decode($result,true);

        if(isset($info['data'])){
            return$info['data'];
        }else{
            return'0';
        }
        return$result;
    }
    /**
     * 群组添加成员
     *
     * @param
     *          $group_id
     * @param
     *          $username
     */publicfunctionaddGroupsUser($group_id, $username) {$url = $this->url . "chatgroups/" . $group_id . "/users/" . $username;
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "POST" );
        return$result;
    }
    /**
     * 群组删除成员
     *
     * @param
     *          $group_id
     * @param
     *          $username
     */publicfunctiondelGroupsUser($group_id, $username) {$url = $this->url . "chatgroups/" . $group_id . "/users/" . $username;
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "DELETE" );
        return$result;
    }
    /**
     * 聊天消息记录
     *
     * @param $ql 查询条件如:$ql
     *          = "select+*+where+from='" . $uid . "'+or+to='". $uid ."'+order+by+timestamp+desc&limit=" . $limit . $cursor;
     *          默认为order by timestamp desc
     * @param $cursor 分页参数
     *          默认为空
     * @param $limit 条数
     *          默认20
     */publicfunctionchatRecord($ql = '', $cursor = '', $limit = 20) {$ql = ! empty ( $ql ) ? "ql=" . $ql : "order+by+timestamp+desc";
        $cursor = ! empty ( $cursor ) ? "&cursor=" . $cursor : '';
        $url = $this->url . "chatmessages?" . $ql . "&limit=" . $limit . $cursor;
        $access_token = $this->getToken ();
        $header [] = 'Authorization: Bearer ' . $access_token;
        $result = $this->postCurl ( $url, '', $header, $type = "GET " );
        return$result;
    } 

    //判断某个字段是否存在publicfunctioncheckField($jsons){if($jsons->activated==true){
        print_r('11111');
        returntrue;
        }else{
        print_r('22222');
        returnfalse;
        }
    }

    /**
     * 获取Token
     */publicfunctiongetToken() {//print_r($url);exit;$option ['grant_type'] = "client_credentials";
        $option ['client_id'] = $this->client_id;
        $option ['client_secret'] = $this->client_secret;
        $url = $this->url . "token";
        $fp = @fopen ( "easemob.txt", 'r' );
        if ($fp) {
            $arr = unserialize ( fgets ( $fp ) );
            if ($arr ['expires_in'] < time ()) {
                $result = $this->postCurl ( $url, $option, $head = 0 );
                //$result ['expires_in'] = $result ['expires_in'] + time ();
                @fwrite ( $fp, serialize ( $result ) );
                $myArr=json_decode($result, true);
                $token=$myArr['access_token'];
                return$token;
                fclose ( $fp );
                exit ();
            }
            return$arr ['access_token'];
            fclose ( $fp );
            exit ();
        }
        $result = $this->postCurl ( $url, $option, $head = 0 );
        $result = json_decode($result);
        $result ['expires_in'] = $result ['expires_in'] + time ();
        $fp = @fopen ( "easemob.txt", 'w' );
        @fwrite ( $fp, serialize ( $result ) );
        return$result ['access_token'];
        fclose ( $fp );
    }

    /**
     * CURL Post
     */privatefunctionpostCurl($url, $option, $header = 0, $type = 'POST') {$curl = curl_init (); // 启动一个CURL会话
        curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址
        curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE ); // 对认证证书来源的检查
        curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, FALSE ); // 从证书中检查SSL加密算法是否存在
        curl_setopt ( $curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)' ); // 模拟用户使用的浏览器if (! empty ( $option )) {
            $options = json_encode ( $option );
            curl_setopt ( $curl, CURLOPT_POSTFIELDS, $options ); // Post提交的数据包
        }
        curl_setopt ( $curl, CURLOPT_TIMEOUT, 30 ); // 设置超时限制防止死循环
        curl_setopt ( $curl, CURLOPT_HTTPHEADER, $header ); // 设置HTTP头
        curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回
        curl_setopt ( $curl, CURLOPT_CUSTOMREQUEST, $type );
        $result = curl_exec ( $curl ); // 执行操作//$res = object_array ( json_decode ( $result ) );//$res ['status'] = curl_getinfo ( $curl, CURLINFO_HTTP_CODE );//pre ( $res );
        curl_close ( $curl ); // 关闭CURL会话return$result;
    }

    //登录成功后自动检测帐户信息,如果没有创建则创建publicfunctionautoRegister($username){$hasAccount= $this->userDetails($username) ;
        if($hasAccount){
            return'1';
        }else{

        }

    }

    //登录publicfunctionlogin(){
         session_start(); 
         $sessionid = session_id();//得到sessionid//echo $sessionid ;//声明一个json数组$value=array();
         $username=trim($_REQUEST['username']);
         $password=trim($_REQUEST['password']);

        // $DH=$db->get_one("select * from $thistable where  (username='".trim($username)."' or mobile='".trim($username)."' or (email='".trim($username)."' and email_yz=1)) and del=0 ");$islogin=loginaddpoint($username,$password,$type=""); 

        $user_id = $islogin;
        if($islogin>0){

            //数据库获取用户所有信息$umodel = M('user','jo2_');
            $U=$umodel -> where("userid='".$user_id."'") -> find();
            //var_dump($U);$_SESSION["userid"]=$U["userid"];
            $_SESSION["username"]=$U["username"];
            $_SESSION["usertype"]=$U["type"];
            $_SESSION["sessionid"]=$sessionid;
            $U['face']=$siteurl.$U['face'];
            $U['face_s']=$U['face_s']?$siteurl.$U['face_s']:'';
            $value['sessionid']=$sessionid;
            $value['account'] = $U['username'];
            $value['user_id'] = $U['userid'];
            $value['msg'] = "登陆成功!";
            $value['code'] = "200";

            if($_GET[isdz]=="1"){
            $json=json_encode($U);
            }else{
            $json=json_encode($value);
            }
            echo$json;

        }elseif($islogin == -2){
            $value['msg'] = "密码错误!";
            $value['code'] = "101";
            $json=json_encode($value);
            echo$json;
        }elseif($islogin == -1){
            $value['msg'] = "用户名和密码不能为空!";
            $value['code'] = "102";
            $json=json_encode($value);
            echo$json;
        }elseif($islogin === 0){
            $value['msg'] = "账号不存在!";
            $value['code'] = "103";
            $json=json_encode($value);
            echo$json;
        }   

    }
}

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了环信服务端集成(PHP),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

797

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

272

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

144

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

25

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

92

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

53

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

717

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

64

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
JavaScript高级框架设计视频教程
JavaScript高级框架设计视频教程

共22课时 | 3.6万人学习

【李炎恢】ThinkPHP8.x 后端框架课程
【李炎恢】ThinkPHP8.x 后端框架课程

共50课时 | 4.6万人学习

React 路由精讲视频教程
React 路由精讲视频教程

共10课时 | 2.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号