Asp.Net OA 集成RTX(腾讯通)开发实践

本博客详细介绍了如何基于RTX2010进行集成开发,包括环境配置、服务器与客户端安装、代码集成与功能实现。通过发送提醒消息与IM聊天功能,实现在线同事之间的高效通知与沟通。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



做完这个集成这后,还是感觉挺有意思的,毕竟公司90%的人都在使用RTX,再也用使用OA通知,可以像360强制弹窗一样,提醒在线的同事啦。


以下开发基于 RTX2010 进行开发

准备工作


RTX腾讯通的介绍可以在下面的这个网站上获取

腾讯通官网

以下文档可能在您开发过程中,能给您带来帮助:

官网下载地址:

http://rtx.tencent.com/rtx/support/index.shtml



Server端开发文档指南

 点击下载此文件(569.28 KB)
[2013-01-24 00:00 AM; 已下载次数:355]


Client端开发文档指南

 点击下载此文件(1.02 MB)
[2013-01-24 00:00 AM; 已下载次数:618]



RTXServer SDK 帮助文档及示例
 点击下载此文件(4.51 MB)
[2013-01-24 00:00 AM; 已下载次数:305]



RTXClient SDK 帮助文档及示例


建议在开发之前,大致浏览或阅读以上的相关文档,这样做起来才有底。



环境配置

1.装有RTX2011 正式版的RTX Server 服务端的服务器




2.RTX SDK的安装,可以与RXT的Server 安装在同一服务器上,也可以安装在不同的服务器中



安装好后,最好使用SDK自带的Demo测试一下是否OK,如果不OK,则要检查安装是否有问题

2.1验证是否OK



如果能启动成功,则证明配置是OK的




排除安装问题外,则需要检查下面这三个文件的配置是否OK

SDK默认是安装的服务器可以访问的,如果您的SDK是安装在其它服务器上,则要通过配置三个XML文件,将SDK的服务器的IP添加在可允许访问的IP策略上.

文件名称:

AppConfig.xml AppConnConfig.xml SDKProperty.xml

AppConfig.xml





AppConnConfig.xml




SDKProperty.xml




三个文件修改后,要重启RTX的相关服务才能生效,建议能重启整台服务器最好.


3.客户端的安装




一切环境配置OK,就可以开始进行开发工作了.

安装好SDK后,就可以引用SDK安装中的相关dll

[b]集成开发[b]

1.首先要引用SDK中的组件,引用中的文件是在SDK的安装路径下



引用后,就成了下面这样子的了



提示:在SDK的安装路径下还有个demo,这个demo可以很好的帮助我们实现开发


2.在cs文件中引用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using RTXSAPILib;



初始化服务器配置


int retval;
           //初始化服务器属性
           RTXSAPILib.IRTXSAPIRootObj RootObj;
           RootObj = new RTXSAPIRootObj();
           //创建根对象
           RootObj.ServerIP = "172.28.8.36"

           RootObj.ServerPort ="8006"; //设置服务器端口



进行相关的代码操作

发送提醒消息

///
       /// 发送消息提醒
       ///
       /// 接收者
       /// 标题
       /// 停留时间 0为等待用户关闭,以毫秒计
       /// 发送内容,自动识别链接
       /// 
       public  static int SendNotify(string receiverAccount, string title, string holdtime, string content)
       {
           int retval;
           //初始化服务器属性
           RTXSAPILib.IRTXSAPIRootObj RootObj;
           RootObj = new RTXSAPIRootObj();
           //创建根对象
           RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();

           RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口

           try
           {
               RootObj.SendNotify(receiverAccount, title, 0, content); //获取版本信息

               retval = 1;

               return retval;
           }
           catch (Exception xe)
           {
               retval = 0;

               return retval;

           }

       }




发送IM聊天消息

  ///
       /// 发送IM
       ///
       /// 发送人
       /// 发送人密码
       /// 接收者,不能超过128人一次
       /// 发送内容
       /// 0为发送出错 1为成功
       public int SendIM(string senderAccount, string password,  string receiver, string content)
       {
           int retval;

           //初始化服务器属性
           RTXSAPILib.IRTXSAPIRootObj RootObj;
           RootObj = new RTXSAPIRootObj();
           //创建根对象
           RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
           RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口

           //获致sessionkey

           string sessionKey = GetSessionKey(senderAccount);

           try
           {
               RootObj.SendIM(senderAccount, password, receiver, content, sessionKey);

               retval = 1;

               return retval;
           }
           catch (Exception xe)
           {
               retval = 0;

               return retval;
              
           }
       }



获取sessionKey


       ///
       /// 根据账号获取sessionKey
       ///
       /// 
       /// 
       public static string GetSessionKey(string Account)  //服务器端代码
       {
           RTXSAPILib.IRTXSAPIRootObj RootObj;
           RootObj = new RTXSAPIRootObj();
           //创建根对象
           RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
           RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口

           string SessionKey = "";


           RTXSAPILib.RTXSAPIUserAuthObj UserAuthObj = RootObj.UserAuthObj; //创建一个用户认证对象

           try
           {
               SessionKey ="{"+ UserAuthObj.GetSessionKey(Account)+"}";  //通过用户认证对象获取SessionKey
           }
           catch (Exception ex)
           {
              return ex.Message.ToString();
           }
           return SessionKey; //返回SessionKey
       }




检查用户在线状态

   ///
       /// 检查用户状态
       ///
       /// 用户账号
       /// 
       public static string QueryUserState(string userAccount)
       {
           RTXSAPILib.IRTXSAPIRootObj RootObj;
           RootObj = new RTXSAPIRootObj();
           //创建根对象
           RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
           RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口
           try
           {
            
               return RootObj.QueryUserState("德仔");

           }
           catch (Exception ex)
           {
               return "Error";
           }
          

       }




检查是否存在用户


  ///
       /// 检查是否存在用户
       ///
       /// 用户账号
       /// 
       public static bool IfExist(string userAccount)
       {
           int retval;

           RTXSAPILib.IRTXSAPIRootObj RootObj;
           RootObj = new RTXSAPIRootObj();
           //创建根对象
           RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
           RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口


           try
           {

               return RootObj.UserManager.IsUserExist(userAccount);
              
           }
           catch (Exception ex)
           {
               return false;
           }
       }



删除用户

  ///
       /// 删除用户
       ///
       /// 用户账号
       /// 
       public static bool DeleteUserAccount(string userAccount)
       {
           RTXSAPILib.IRTXSAPIRootObj RootObj;
           RootObj = new RTXSAPIRootObj();

           //创建根对象
           RootObj.ServerIP = BBKEDU.HR.DAL.SysConfig.strRTXSERVER.ToString();
           RootObj.ServerPort = Convert.ToInt16(BBKEDU.HR.DAL.SysConfig.strRTXSERVERPORTAL); //设置服务器端口

           try
           {

               RootObj.UserManager.DeleteUser(userAccount);

               return true;
           }
           catch (Exception xe)
           {
              

               return false;

           }
       }




这里要注意的是:session key的格式要与RTX帮助文档中的key值的格式一样,否则就会出现发送IM的时候能看到IM但点击就会弹不出来的问题.格式是[color=red]"{"+md5值+"}+
形式的
[/color]

以上的代码开发完成后,就可以测试效果了




是不是很欣慰啊?呵呵!   



参考文档

RTX ASP.NET(C#) 结合的个人实践 可以OA平台的接口
http://blog.youkuaiyun.com/yunfan555/article/details/2978284

asp.net (C#) RTX(腾讯通) 接口应用 能实现与OA接口

http://www.cnblogs.com/sunjie9606/archive/2012/10/25/2738337.html
通用OA系统源代码(asp.net)包含完整源代码和数据库,除了具有传统OA的邮件、工作流、文档等功能外,还引进了项目管理和知识管理的思想,更加注重工作任务的分解、协同和监督;知识的积累、沉淀和分享,多条件跳转的分支流更为特色,有效为企业构筑协同工作平台 我的任务:今天未完成任务列表 我的邮件:最新收到的邮件列表 我的文档:最新归档的项目文档 我的审批:待我审批的项目文档 考勤:成员上下班的考勤 全文检索:对系统中项目文档的全文检索,并有权限过滤机制 系统设置各类接点:系统的权限中心和配置中心 人员管理:系统账户;由系统管理员添加、修改;可以定义新增、离职、调职还可自定义查询 职位管理:组织内的职位结构树,是权限的基本结构 角色管理:权力的集合,可以自由定义。系统默认的有组长、组员和系统成员。 修改口令:成员修改自己的口令(系统管理员在成员模块中修改口令) 考勤查询:查询包括自己在内的考勤纪录,或系统指定的成员如人事助理可查全部成员 考勤设置:考勤日和考勤时间的设置 公司论坛:包括公司公告和各版块BBS;有BBS管理权可以添加桌面公告和版块公告,版主可以自由添加版块和版块公告。BBS的功能同常见的,但无须登录; 客户管理(客户接触点的管理) 我的客户:显示由我负责的客户信息,并添加接触纪录(电话、拜访等) 查询、统计:客户资料的统计和分析,销售人员的业绩管理 我的联系人 公司内部联系人:系统成员列表中获得 公司外部联系人:等同于公司客户的联系人 自定义联系人:管理私人的联系人 我的任务:(含任务协同、任务指派、任务查询) 待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而不执行的指派任务 订阅/查询任务:显示我不参加的任务,查询他人的任务 我的邮件 收件箱:我收到的邮件,全部显示 发件箱 :我曾经发送的邮件,全部显示 废件箱 :我删除的收到过的的邮件 撰写新邮件:可以有项目属性,并可归档 公文流转 待批文档:流程走到我这里的文档,等待我处理 我的申请:我发起的流转申请 已批文档:从我这里过的,被我处理过的文档 流程管理:由我创建和管理的流程,需要制定环节和绑定角色 拟稿箱:我可以发起的文档流转的入口,凡流程的第一环节有我的,都显示;并可以对流程有条件查询 我的文档 已归档:我可以查看的已归档项目文档 待审批:正等待我审批的项目文档;审批权包括角色指定,或是项目组长。 公司项目:项目树的管理,每人看到自己参与的项目内容或权限赋予的内容 投递文档:对该项目投递相关的文档 撰写邮件:对该项目组成员发送邮件 项目管理:项目的创建、删除、修改、移动 成员管理:项目成员的添加、删除;组长的标记;组员权限的变更 项目订阅:显示我关心的项目内容(本人并不是项目成员,但有权查看) 目录管理:创建项目文档库,并有严格权限限制,文档目录可扩展 短信管理: 站内短信:系统内的消息机制 站外手机短讯:发送多个附加手机号码 USB_Key 设置:对硬件加密的设置.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值