词条信息

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

相关词条

热门词条

更多>>
如何更换服务器而不影响网站排名
     无论是个人站长还是网络[详细]
马云的达摩院到底要研究啥?
  今天,阿里做了一件成立 18 年来都没做的事:成立了研究室[详细]
什么是软文,软文的作用,常见的形式?
  最近很多人在问关于软文怎么写,怎样才会达到好的效果。想问大[详细]
鹿晗和关晓彤公布恋情,崩了微博
昨天中午,鹿晗公布了自己的恋情,女友是关晓彤。瞬间,鹿晗的“女[详细]
2016-2017中国大学排行榜
  2016年12月29日,中国校友会网公布了2016-2[详细]
解决网 >>所属分类 >> 程序开发   

騰訊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();
}

 

 

本文地址:解决网 http://www.solves.com.cn/doc-view-19.html

TAGS:SOLVES , 电脑技术 , 电脑知识 , 网站建设, 电脑技术, 网络营销 , 网站托管 , 硬件技术 , 网络技术 , 软件技术, 维修网点

附件列表


按字母顺序浏览: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. 如果您没有找到需要的电脑技术问题词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>