git上有不少相似的項目,但大多都是python和js的,爲了便於.Net windows平臺的使用,我重構了一個.Net版本的,已整理開源python
https://github.com/leestar54/WebWeChatAPI.Netgit
基於.Net平臺C#的微信網頁版APIgithub
vs2015+.net4.0 frameworkweb
json.net 4.0json
具體內容見源碼,此處僅簡單說明windows
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)