开源微信Http协议Sdk【实现登录/获取好友列表/修改备注/发送消息】
基于微信Http协议封装的一个Sdk,目前实现了以下功能:、
1:扫码登录(检测二维码扫描状态)
2:获取最近联系人、群组、所有联系人
3:修改好友备注
4:给好友发送消息
暂且这么多,也没多余的时间去增加了,大家有需要的可以下载源码自己扩展下

项目结构如下

如何使用
HttpWeChat类封装了所有和微信相关的功能,对外暴露了以下事件,在实例化HttpWeChat实例的时候就可以订阅相关事件,并做相对应操作
/// <summary>
/// 二维码发生变化事件
/// </summary>
public event EventHandler<QrCodeChangEventArgs> QRCodeChangeEvent;
/// <summary>
/// 二维码状态发生改变事件
/// </summary>
public event EventHandler<QrCodeStatusChangEventArgs> QRCodeStatusChangeEvent;
/// <summary>
/// 初始化数据之前
/// </summary>
public event EventHandler<EventArgs> InitDatabeforeEvent;
/// <summary>
/// 初始化数据完成
/// </summary>
public event EventHandler<EventArgs> InitDatacompleteEvent;
/// <summary>
/// 消息检查事件
/// </summary>
public event EventHandler<SyncCheckEventArgs> SyncCheckEvent;
/// <summary>
/// 收到新消息事件
/// </summary>
public event EventHandler<WebwxsyncEventArgs> WebwxsyncEvent;
发送消息
var result = httpWeChat.SendMessage(new Model.SendMessage
{
ClientMsgId = DateTime.Now.ToUnix().ToString(),
Content = "测试一下",
ToUserName = httpWeChat.WeChatData.AllMember.FirstOrDefault(c => c.NickName == haoyouliebiao.Text)?.UserName,
FromUserName = httpWeChat.WeChatData.CurrentLoginMemberInfo.UserName
});
if (result.Status)
{
MessageBox.Show("消息发送成功!消息Id是:" + result.MsgId);
}
else {
MessageBox.Show("消息发送失败,错误消息是:"+result.ErrorMsg);
}
修改备注
httpWeChat.UpdateRemarke(new Model.UpdateRemarke {
UserName = httpWeChat.WeChatData.AllMember.FirstOrDefault(c => c.NickName == haoyouliebiao.Text)?.UserName,
RemarkName = httpWeChat.WeChatData.AllMember.FirstOrDefault(c => c.NickName == haoyouliebiao.Text).RemarkName + "Sdk修改测试"
});
MessageBox.Show("修改成功!");
项目地址
https://github.com/dazhuangtage/Diego.WxHttpSdk/tree/master
当前项目源码仅供参考,不建议生产环境使用。
开源微信Http协议Sdk【实现登录/获取好友列表/修改备注/发送消息】的更多相关文章
- XMPP框架下微信项目总结(5)花名册获取(好友列表)
---->概念 ---->添加花名册 ps:添加花名册,启动: 客户端发送请求到服务器获取好友列表信息,同时在项目中创建数据表,并保存好友列表到数据表中. ---->获取服务器保存好 ...
- 一步一步来做WebQQ机器人-(四)(获取好友列表和群列表)
× 本篇主要是: 获取好友列表,群列表 我会尽量详细一点,尽我所知的分享一些可能大家已经掌握的或者还不清楚的经验 利于大家阅读,文章样式不再复杂化,根据内容取固定色 目前总进度大概65% 全系列预计会 ...
- web qq 获取好友列表hash算法
web qq 获取好友列表hash算法 在使用web qq的接口进行好友列表获取的时候,需要post一个参数:hash 在对其js文件进行分析之后,发现计算hash的函数位于: http://0.we ...
- XMPP系列(三)---获取好友列表、添加好友
1.心跳检测.掉线重连功能 客户端和服务器端都可以设置多久发送一次心跳包,如果对方没有返回正确的pong信息,则会断开连接,而添加掉线重连功能,则会自动进行连接. 如果自己写聊天功能还得自己做心跳检测 ...
- XMPP系列(三)---获取好友列表、加入好友
1.心跳检測.掉线重连功能 client和server端都能够设置多久发送一次心跳包,假设对方没有返回正确的pong信息,则会断开连接,而加入掉线重连功能,则会自己主动进行连接. 假设自己写聊天功能还 ...
- XMPP框架下微信项目总结(6)刷新好友列表(删除,添加好友)
原理:1 服务器(openfire)添加/删除 好友,会向客户端(app)发送消息, 2 代理(xmppStreamDelegate)监听到添加/删除消息后,花名册模块(RosterModule)会在 ...
- 关于Android SDK Manager无法获取更新列表的正确设置
1.以"管理员身份运行"SDK Manager. 2.Android SDK Manager"=>"Tools"=>"Optio ...
- 用简单的http抓包来实现微信公众网页如何模拟登录
一.准备工具: 系统:XP 浏览器:IE8 抓包工具:HttpWatch(它可以查看url请求的数据包) 二.抓包思路: 浏览器上的任何获取数据的方式都符合http协议的请求,只要发送符合要求的数据就 ...
- 微信支付V3 SDK Payment Spring Boot 1.0.6 发布,实现留守红包,助力抗疫
春节将至,为防控疫情,多地政府提倡员工.外来务工者留守本地过年,并鼓励企业向员工发放"留守红包".为此,微信支付推出"春节留守红包"能力,希望可以协助有发放需求 ...
随机推荐
- for之于while的优势
前言 for与while各有功效,下面就只列举for之于while的优势有哪些 优势 1.循环中提供了特殊的机会来将变量的作用域最小化.(无论是传统的还是for-each形式的)for循环,都允许声明 ...
- jboss eap6.1(4)(部署应用)
1.添加应用war包 手动部署,添加war包到standalone\deployments下,手工创建一个文件,如war包名称是a.war,创建一个a.war.deployed文件,内容随意. 2. ...
- dll动态链接库导出函数方法 -- 静态导出(__declspec前缀导出)
简介 在之前已经笔者已经写过利用.def文件进行dll函数动态导出的文章,那么今天就给大家介绍一下,如何利用**__declspec**函数前缀进行简单的静态函数导出. 要点 大家阅读过动态导出的文章 ...
- java使用elasticsearch进行模糊查询-已在项目中实际应用
java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...
- 【Nginx】开启 gzip和缓存
Nginx 开启 gzip和缓存 时间:2016-09-23 16:42:37 nginx 是一个高性能的 Web 服务器,之前也写过一些关于 nginx 的文章.为了提高博客的响应速度,可以从设置 ...
- 【Alpha go】Day 2!
[Alpha go]Day 2! Part 0 · 简要目录 Part 1 · 项目燃尽图 Part 2 · 项目进展 Part 3 · 站立式会议照片 Part 4 · Scrum 摘要 Part ...
- Django基础与组件
第一章:Django系列之web应用与http协议 第二章:基于wsgiref模块DIY一个web框架 第三章:Django下载与简介 第四章:url控制系统 第五章:视图 第六章:Django模板语 ...
- 关于Java集合类库中的几种常用队列
Java中几种常用的队列 阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞.试图从空的阻塞队列中获取元素的线程将会被阻塞 ...
- QGis C++ 开发之创建临时图层并添加要素
开发环境:Win10 + VS2010 + Qt 4.8.6 + QGis 2.14.4 其实本文实现的功能类似于QGis中“添加文本数据图层”的一个简化版,本文不会涉及到对话框的使用 ...
- WorldWind源码剖析系列:枚举类型
PluginSDK中的枚举型主要有以下这些: public enum AltitudeMode//高度模式枚举 { ClampedToGround,//强制到地面模式 RelativeToGround ...