這篇文章很是好,最重要的是後面有實現的代碼,很實用,直接用到本身系統中了html
引用網址:http://www.dezai.cn/Blog/article.asp?id=478web
作完這個集成這後,仍是感受挺有意思的,畢竟公司90%的人都在使用RTX,再也用使用OA通知,能夠像360強制彈窗同樣,提醒在線的同事啦。
如下開發基於RTX2010進行開發
準備工做
RTX騰訊通的介紹能夠在下面的這個網站上獲取
騰訊通官網
如下文檔可能在您開發過程當中,能給您帶來幫助:
官網下載地址:
http://rtx.tencent.com/rtx/support/index.shtml
Server端開發文檔指南
點擊下載此文件(569.28 KB)
[2014-02-18 07:28 PM; 已下載次數:196]
Client端開發文檔指南
點擊下載此文件(1.02 MB)
[2014-02-18 07:27 PM; 已下載次數:422]
RTXServer SDK 幫助文檔及示例
點擊下載此文件(4.51 MB)
[2014-02-18 07:26 PM; 已下載次數:58]
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的安裝路徑下,默認路勁:C:\Program Files\Tencent\RTXSSDK
引用後,就成了下面這樣子的了
提示:在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"; //設置服務器端口
進行相關的代碼操做
發送提醒消息服務器
///
/// 發送消息提醒
///
///
接收者:是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聊天消息session
///
/// 發送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;
}
}
獲取sessionKeyasp.net
///
/// 根據帳號獲取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;
}
}
刪除用戶ui
///
/// 刪除用戶
///
///
用戶帳號
///
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.htmlspa