• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

这篇文章非常好,最重要的是后面有实现的代码,很实用,直接用到自己系统中了

引用网址:http://www.dezai.cn/Blog/article.asp?id=478

 

 

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

准备工作


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

腾讯通官网

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

官网下载地址:

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



Server端开发文档指南


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

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



进行相关的代码操作

发送提醒消息


///
       /// 发送消息提醒
       ///
       /// 接收者:是rtx帐号(即用户名),不能用rtx号码uid,多个用户之间用“;”隔开;接受者为空,则是发给所有人,与all效果一样,慎用!
       /// 标题
       /// 停留时间 0为等待用户关闭,以毫秒计
       /// 发送内容,自动识别链接:隐式链接格式: [【查看详情】|www.baidu.com],不能加http:// ,否则不能弹出浏览器,而且“|”后面不能有空格
       /// 
       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); //发送消息给接受者,注意,receiverAccount="",则是发给所有人,与all效果一样,慎用!这里接受者是rtx帐号(即用户名),不能用rtx号码uid,多个用户之间用“;”隔开

               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.csdn.net/yunfan555/article/details/2978284

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

http://www.cnblogs.com/sunjie9606/archive/2012/10/25/2738337.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET(一):报文发布时间:2022-07-10
下一篇:
asp.netmvc从客户端中检测到有潜在危险的Request.Form值的解决方法 ...发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap