词条信息

admin
admin
超级管理员
最近编辑者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> 程序开发   

騰訊RTX的API開發,給RTX開個天窗

标签: RTX

顶[1] 发表评论(0) 编辑词条

 好多人可能沒聽說RTX這個軟件,在此我簡單說明一下,這個軟件是騰訊為企業開發的一個內部聊天軟件,服務端不是在騰訊那邊,而是需要企業自己安裝到自己公司內部的服務器上,以供企業內部員工交流使用,功能和QQ差不多,只是比QQ弱一點罷了.

    嚴格說起來,其實RTX是有提供API接口的,只是不大太好,最近公司對此有需要,所以我就重寫了一下這個API.另外我重寫的主要原因是RTX自帶的API遇到中文會亂碼,而且還有很多雜七雜八的問題,上網搜結果發現關於RTX的API討論話題極少.估計是因為大家對這個軟件的關注程度不高的原因吧.

    試想一下,其實網站交互的時候我們除了可以用網站發郵件或手機簡訊之外還可以發送即時消息到RTX上,讓公司內部的員工能夠及時瞭解到網站訪問者的需求,爲了達到這個目的,因此我重寫了我們公司內部的RTX的API,重寫之後的API能實現新增RTX用戶,修改用戶資料,刪除用戶,獲取所有的用戶列表,根據狀態獲取某些用戶,獲取公司內部的組織架構,發送即時通知給某些用戶,發送即時消息給某些用戶等等,下邊我就直接上代碼了:

<?PHP
require('_class.php');
 
//驗證使用這個API的用戶身份是否合法?
$K='twboss_rtx';    //d6904e27b5c274b1d6acaadda88ec131
$key=Fun::toGet('key');
if($key!=md5($K)){
    exit('Error:'.__LINE__.', 您無權使用該API!');
}unset($key,$K);
 
$action=Fun::toGet('action');
switch(strtolower($action)){
case 'add':                 //新增RTX用戶
    _Add();
    break;
case 'mdy':                 //修改某人的RTX登入密碼
    _Mdy();
    break;
case 'del':                 //刪除某人
    _Del();
    break;
case 'setdept':             //修改用戶所屬部門
    _Setdept();
    break;
case 'userlist':            //獲取RTX用戶列表
    _Userlist();
    break;
case 'deptlist':            //獲取組織架構列表
    _Deptlist();
    break;
case 'getstatus':           //獲取用戶在線狀態
    _Getstatus();
    break;
case 'getuserbystatus':     //提取某種類型的用戶列表
    _Getuserbystatus();
    break;
case 'sendtz':              //發通知給某人或某幾個人
    _Sendtz();
    break;
case 'sendim':              //發送消息給某人
    _Sendim();
    break;
default:
    break;
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
        user:必填,只能由英文和數字組成,長度不能小於3
        pass:必填,只能由英文,數字和底線組成,長度不能小於3
        title是用戶真實姓名,可以用中文
    用法:
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=add&user=7di&pass=123123&title='.iconv('UTF-8','big5','馮健'));
        echo '<pre>',var_dump($a),'</pre>';
/**/
function _Add(){
    $user=Fun::toGet('user');       //登入名
    $pass=Fun::toGet('pass');       //登入密碼
    $title=Fun::toGet('title');     //真實姓名
 
    if($user=='' or $pass==''){exit('Error:'.__LINE__.', 登入名或密碼不能為空!');}
    $title=($title=='') ? $user : $title;
 
    if(!Fun::Preg("^[a-zA-Z0-9]{3,16}$",'chk',$user)){exit('Error:'.__LINE__.', 登入名稱只能有英文和數字組成,並且長度範圍是3~16');}
    if(!Fun::Preg("^[a-zA-Z0-9._]{3,16}$",'chk',$pass)){exit('Error:'.__LINE__.', 登入密碼只能有英文,數字和底線組成,並且長度範圍是3~16');}
 
    try{
        $RootObj= new COM('RTXSAPIRootObj.RTXSAPIRootObj');
        $RootObj -> ServerIP= '127.0.0.1';
        $RootObj -> ServerPort= '8006';
 
        $UserManagerObj=$RootObj -> UserManager;
 
        if(($UserManagerObj -> IsUserExist($user))===FALSE){
            $UserManagerObj -> AddUser($user,0);   //添加用户
            $UserManagerObj -> SetUserPwd($user,$pass);
            $UserManagerObj -> SetUserBasicInfo($user,$title,0,'','','',0);
 
            echo '200 ok';
        }else{
            exit('Error:'.__LINE__.',用戶已存在!');
        }
    }catch(Exception $e){
        echo '<pre>',Var_Dump($e->getMessage()),'</pre>';
    }
    die();
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
        user:必填,只能由英文和數字組成,長度不能小於3
        pass:必填,只能由英文,數字和底線組成,長度不能小於3
        title:選填,用戶真實姓名,可以用中文
    用法:
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=mdy&user=7di&pass=123123&title='.iconv('UTF-8','big5','馮健'));
        echo '<pre>',var_dump($a),'</pre>';
/**/
function _Mdy(){
 
    $user=Fun::toGet('user');       //登入名
    $pass=Fun::toGet('pass');       //登入密碼
    $title=Fun::toGet('title');     //真實姓名
 
    if($user=='' or $pass==''){exit('Error:'.__LINE__.', 登入名或密碼不能為空!');}
    $title=($title=='') ? $user : $title;
 
    if(!Fun::Preg("^[a-zA-Z0-9]{3,16}$",'chk',$user)){exit('Error:'.__LINE__.', 登入名稱只能有英文和數字組成,並且長度範圍是3~16');}
    if(!Fun::Preg("^[a-zA-Z0-9._]{3,16}$",'chk',$pass)){exit('Error:'.__LINE__.', 登入密碼只能有英文,數字和底線組成,並且長度範圍是3~16');}
 
    try{
        $RootObj= new COM('RTXSAPIRootObj.RTXSAPIRootObj');
        $RootObj -> ServerIP= '127.0.0.1';
        $RootObj -> ServerPort= '8006';
        $UserManagerObj=  $RootObj -> UserManager;
 
 
        if(($UserManagerObj -> IsUserExist($user))===TRUE){
            $UserManagerObj -> SetUserPwd($user,$pass); //设置用户密码
            $UserManagerObj -> SetUserBasicInfo($user,$title,0,'','','',0);
 
            echo '200 ok';
        }else{
            exit('Error:'.__LINE__.',用戶不存在!');
        }
    }catch(Exception $e){
        echo '<pre>',Var_Dump($e->getMessage()),'</pre>';
        Die();
    }
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
        user:必填,只能由英文和數字組成,長度不能小於3
        pass:必填,只能由英文,數字和底線組成,長度不能小於3
        title:選填,用戶真實姓名,可以用中文
    用法:
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=del&user=xxx');
        echo '<pre>',var_dump($a),'</pre>';
/**/
function _Del(){
 
    $user=Fun::toGet('user');       //登入名
    $pass=Fun::toGet('pass');       //登入密碼
    $title=Fun::toGet('title');     //真實姓名
 
    if($user=='' or $pass==''){exit('Error:'.__LINE__.', 登入名或密碼不能為空!');}
    $title=($title=='') ? $user : $title;
 
    if(!Fun::Preg("^[a-zA-Z0-9]{3,16}$",'chk',$user)){exit('Error:'.__LINE__.', 登入名稱只能有英文和數字組成,並且長度範圍是3~16');}
    if(!Fun::Preg("^[a-zA-Z0-9._]{3,16}$",'chk',$pass)){exit('Error:'.__LINE__.', 登入密碼只能有英文,數字和底線組成,並且長度範圍是3~16');}
 
    try{
        $RootObj= new COM('RTXSAPIRootObj.RTXSAPIRootObj');
        $RootObj -> ServerIP= '127.0.0.1';
        $RootObj -> ServerPort= '8006';
        $UserManagerObj=  $RootObj -> UserManager;
 
        if(($UserManagerObj -> IsUserExist($user))===TRUE){
            $UserManagerObj -> DeleteUser($user);
 
            echo '200 ok';
        }else{
            exit('Error:'.__LINE__.',用戶不存在!');
        }
    }catch(Exception $e){
        echo '<pre>',Var_Dump($e->getMessage()),'</pre>';
        Die();
    }
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
        uid:必填,RTX號碼,不可以是登入名
        did:必填,所屬部門的id
    用法:
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=setdept&uid=9534&did=18');
        echo '<pre>',var_dump($a),'</pre>';
/**/
function _Setdept(){
    $uid=Fun::toGet('uid');     //RTX號碼
    $did=Fun::toGet('did');     //所屬部門的id
 
    if(!is_numeric($uid) or $uid<1){exit('Error:'.__LINE__.', 只能填寫被修改者的RTX號碼,不可以填寫登入名!');}
    if(!is_numeric($did) or $did<1){exit('Error:'.__LINE__.', 只能填寫所屬部門的ID值,不可以填寫部門名稱!');}
 
    $ACC=new Access('../db/rtxdb.mdb','','');
    $ACC->num_rows("update RTX_DeptUser set DeptID = {$did} where UserID={$uid}");
    echo '200 ok';
    die();
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
    用法:
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=userlist');
        echo '<pre>',var_dump(json_decode($a,TRUE)),'</pre>';
        die();
/**/
function _Userlist(){
    $ACC=new Access('../db/rtxdb.mdb','','');
    $a=$ACC->getlist("SELECT a.ID,a.UserName,a.Name,a.Gender,a.Mobile,a.Email,a.Phone,a.UserVersion,b.DeptID FROM `SYS_User` AS a,RTX_DeptUser AS b WHERE (a.AccountState=0 OR a.AccountState IS NULL) AND b.UserId=a.ID ORDER BY a.ID DESC");
    foreach($a as $k=>$v){
        if(!isset($a[$k]['Name']) or $a[$k]['Name']==''){continue;}
 
        $a[$k]['Name']=iconv('big5','UTF-8',$a[$k]['Name']);
 
    }unset($k,$v);
    header('Content-type: application/json; charset=UTF-8');
    echo json_encode($a);
    die();
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
    用法:
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=deptlist');
        echo '<pre>',var_dump(json_decode($a,TRUE)),'</pre>';
        die();
/**/
function _Deptlist(){
    $ACC=new Access('../db/rtxdb.mdb','','');
    $a=$ACC->getlist("SELECT DeptID,PDeptID,DeptName,SortID FROM `RTX_Dept` ORDER BY PDeptID ASC,SortID ASC");
    foreach($a as $k=>$v){
        if(!isset($a[$k]['DeptName']) or $a[$k]['DeptName']==''){continue;}
 
        $a[$k]['DeptName']=iconv('big5','UTF-8',$a[$k]['DeptName']);
    }unset($k,$v);
 
    header('Content-type: application/json; charset=UTF-8');
    echo json_encode($a);
    die();
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
        user:必填,某人的登入名
    用法:
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=getstatus&user=7di');
        echo $a;
        die();
/**/
function _Getstatus(){
    $user = Fun::toGet('user');
 
    $ObjApi= new COM('Rtxserver.rtxobj');
    $objProp= new COM('Rtxserver.collection');
    $ObjApi->Name = 'SysTools';
    $objProp->Add('Username',$user);
 
    $r = @$ObjApi->Call2(0x2001,$objProp);
    echo($r);
    unset($user,$r,$objProp,$ObjApi);
    die();
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
        status:必填,狀態值['offline','online','away']
    用法:
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=getuserbystatus&status=away');
        echo $a;
        die();
/**/
function _Getuserbystatus(){
    $status=Fun::toGet('status');
    $status=($status=='') ? 'online' : strtolower(trim($status));
 
    if(!in_array($status,array('offline','online','away'))){
        exit('Error:'.__LINE__.', status is not in offline online away!');
    }
 
    $RootObj= new COM("RTXSAPIRootObj.RTXSAPIRootObj");
    $RootObj -> ServerIP= '127.0.0.1';
    $RootObj -> ServerPort= '8006';
 
    $r = $RootObj->QueryUsersByState($status);
    echo ($r);
    unset($status,$r,$RootObj);
    die();
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
        to:必填,誰要接收(多個人名之間要用分號分隔)
        tit:必填,通知的標題
        msg:必填,通知的正文
        tim:必填,通知顯示多久
    用法:
        $msg=(iconv('UTF-8','big5','這是測息,正文!'));
        $tit=iconv('UTF-8','big5','這是標題!');
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=sendtz&tit='.$tit.'&msg='.$msg.'&to=7di;benhuang');
        echo $a;
        die();
/**/
function _Sendtz(){
    $to=Fun::toGet('to');       //誰要接收
    $tit=Fun::toGet('tit');     //通知的標題
    $msg=Fun::toGet('msg');     //通知的正文
    $tim=Fun::toGet('tim');     //通知顯示多久
    $tim = (strlen($tim) == 0 or !is_numeric($tim)) ? 100000 : $tim;
 
    if($to=='' or $msg=='' or $tit==''){
        exit('Error:'.__LINE__.', 通知標題,正文,接收者均不可為空!');
    }
 
    $RootObj= new COM("RTXSAPIRootObj.RTXSAPIRootObj");
    $RootObj -> ServerIP= '127.0.0.1';
    $RootObj -> ServerPort= '8006';
    $RootObj->SendNotify($to,$tit,$tim,$msg);    //txtReceivers.Text, txtTitle.Text, CInt(txtTime.Text), txtContent.Text
    unset($RootObj,$to,$tit,$msg,$tim);
 
    echo '200 ok';
    die();
}
 
/**
    交流:
        QQ群:223494678
    參數:
        key:必填,API密鈅
        action:必填,操作指令
        user:必填,發送者登入名
        pass:必填,發送者登入密碼
        to:必填,誰要接收(多個人名之間要用分號分隔)
        msg:必填,通知的正文
    用法:
        $msg=(iconv('UTF-8','big5','這是測息,正文!'));
        $a=file_get_contents('http://10.20.30.40:8012/_api.php?key=d6904e27b5c274b1d6acaadda88ec131&action=sendim&user=admin&pass=bossadm.com.tw&to=7di;benhuang&msg='.$msg);
        echo $a;
        die();
/**/
function _Sendim(){
    $user=Fun::toGet('user');
    $pass=Fun::toGet('pass');
    $to=Fun::toGet('to');
    $msg=Fun::toGet('msg');
 
    if($to=='' or $msg=='' or $user=='' or $pass==''){
        exit('Error:'.__LINE__.', 每個參數均不可為空!');
    }
 
    if(!Fun::Preg("^[a-zA-Z0-9]{3,16}$",'chk',$user)){exit('Error:'.__LINE__.', 登入名稱只能有英文和數字組成,並且長度範圍是3~16');}
    if(!Fun::Preg("^[a-zA-Z0-9._]{3,16}$",'chk',$pass)){exit('Error:'.__LINE__.', 登入密碼只能有英文,數字和底線組成,並且長度範圍是3~16');}
 
    $RootObj= new COM('RTXSAPIRootObj.RTXSAPIRootObj');
    $RootObj -> ServerIP= '127.0.0.1';
    $RootObj -> ServerPort= '8006';
 
    $sid=Fun::guid();
    $RootObj->SendIM($user,$pass,$to,$msg,$sid);
 
    echo '200 ok';
    unset($user,$pass,$to,$msg,$sid,$RootObj);
    die();
}

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇硬盘出现“I/O设备错误的解决方法
下一篇Web的26项基本概念和技术

1
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>