基於.Net平台C#的微信網頁版API


git上有很多類似的項目,但大多都是python和js的,為了便於.Net windows平台的使用,我重構了一個.Net版本的,已整理開源

https://github.com/leestar54/WebWeChatAPI.Net

WebWeChat.Net

基於.Net平台C#的微信網頁版API

近期更新

  • 實現API基礎功能

開發運行環境

vs2015+.net4.0 framework

依賴項

json.net 4.0

Feature

  • 最小依賴,使用簡單
  • 支持同步、基於事件回調的異步方法
  • 對象間隔離,可以實例化無數客戶端

簡單使用

具體內容見源碼,此處僅簡單說明

static void Main(string[] args)
{
    Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
    AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

    client = new Client();
    qrForm = new QrCodeForm();

    client.ExceptionCatched += Client_ExceptionCatched; ;
    client.GetLoginQrCodeComplete += Client_GetLoginQrCodeComplete; ;
    client.CheckScanComplete += Client_CheckScanComplete; ;
    client.LoginComplete += Client_LoginComplete; ;
    client.BatchGetContactComplete += Client_BatchGetContactComplete; ;
    client.GetContactComplete += Client_GetContactComplete; ;
    client.MPSubscribeMsgListComplete += Client_MPSubscribeMsgListComplete; ;
    client.LogoutComplete += Client_LogoutComplete; ;
    client.ReceiveMsg += Client_ReceiveMsg; ;
    client.DelContactListComplete += Client_DelContactListComplete; ;
    client.ModContactListComplete += Client_ModContactListComplete;
  
    Console.WriteLine("小助手啟動");
    client.Start();
    qrForm.ShowDialog();

    Console.ReadLine();
    client.Close();
    Console.ReadLine();
    client.Logout();
}

方法說明

/// <summary>
/// 異步發送文字消息
/// </summary>
/// <param name="msg">消息</param>
/// <param name="toUserName">發送人UserName</param>
public void SendMsgAsync(string msg, string toUserName)

/// <summary>
/// 同步發送文字消息
/// </summary>
/// <param name="msg">文字</param>
/// <param name="toUserName">發送人UserName</param>
/// <returns></returns>
public SendMsgResponse SendMsg(string msg, string toUserName)

/// <summary>
/// 異步發送文件
/// </summary>
/// <param name="fileInfo">文件信息</param>
/// <param name="toUserName">發送人UserName</param>
public void SendMsgAsync(FileInfo fileInfo, string toUserName)

/// <summary>
/// 同步發送文件,自動分塊上傳,文件較大可能會卡住進程,建議異步發送
/// </summary>
/// <param name="fileInfo">文件信息</param>
/// <param name="toUserName">發送人UserName</param>
/// <returns></returns>
public SendMsgResponse SendMsg(FileInfo fileInfo, string toUserName)

/// <summary>
/// 獲取頭像,因為請求的時候需要帶Cookie等相關參數,所以直接用新的http請求不行,務必使用客戶端API來獲取
/// </summary>
/// <param name="url">頭像地址,例如/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=filehelper&skey=@crypt_372b266_540d016177e861740ee84fec697a3b01 </param>
/// <param name="action">委托Action</param>
/// <returns></returns>
public void GetIconAsync(string url, Action<Image> action)

/// <summary>
/// 同步上傳文件
/// </summary>
/// <param name="fileInfo">文件信息</param>
/// <returns></returns>
public UploadMediaResponse UploadFile(FileInfo fileInfo)

/// <summary>
/// 同步修改備注
/// 注意:多次調用該接口會被封
/// </summary>
/// <param name="remarkName">需要修改的備注名</param>
/// <param name="userName">需要修改的聯系人UserName</param>
/// <returns></returns>
public SimpleResponse RemarkName(string remarkName, string userName)

/// <summary>
/// 同步通過好友認證
/// </summary>
/// <param name="info">sync中獲得的申請信息</param>
/// <returns></returns>
public SimpleResponse VerifyUser(RecommendInfo info)

/// <summary>
/// 同步頂置聊天
/// 注意:多次調用該接口會被封
/// </summary>
/// <param name="remarkName">備注名,官方接口同時附帶這個參數,我們也帶上吧</param>
/// <param name="userName">需要修改的聯系人UserName</param>
/// <returns></returns>
public SimpleResponse TopContact(string remarkName, string userName)

/// <summary>
/// 同步取消頂置消息
/// </summary>
/// <param name="remarkName">備注名,官方接口同時附帶這個參數,我們也帶上吧</param>
/// <param name="userName">需要修改的聯系人UserName</param>
/// <returns></returns>
public SimpleResponse UnTopContact(string remarkName, string userName)

/// <summary>
/// 群里移除用戶,用IsOwner判斷自己是不是群主,否則沒有權限
/// </summary>
/// <param name="roomName"></param>
/// <param name="delName">用戶UserName,英文,分割</param>
/// <returns></returns>
public UpdateChatRoomResponse RemoveChatRoomMember(string roomName, List<string> delNameList)

/// <summary>
/// 添加用戶到群聊
/// </summary>
/// <param name="roomName">群UserName</param>
/// <param name="addName">用戶UserName,英文,分割</param>
/// <returns></returns>
public UpdateChatRoomResponse AddChatRoomMember(string roomName, List<string> addNameList)

/// <summary>
/// 創建群,調用完成,可以用返回的信息,通過GetBatchGetContact去獲取群信息
/// </summary>
/// <param name="memberList">UserName的list</param>
/// <returns></returns>
public CreateChatRoomResponse CreateChatRoom(List<MemberItem> memberList)

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM