匿名通过本文主要向大家介绍了微信公众平台等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
这里所说的高级接口是指面向通过认证的服务号开通的高级功能。
高级功能大致可以分类为:
用户接口
分组接口
客服接口(有别于之前介绍的多客服)
群发接口
多媒体接口
二维码接口
模板消息接口(不是所有账号都可开通)
OAuth2.0(相对比较复杂,后面会有专门介绍)
以上所有的接口都包含在Senparc.Weixin.MP.AdvancedAPIs命名空间下。
一些共同的操作
几乎所有的高级接口都需要用到AccessToken来通讯(注意,下面如果没有特殊说明的接口都需要这个AccessToken,但并非所有),因此多数会有一个AccessToken参数传入,有关AccessToken获取和操作的方式见Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明。
用户接口
源文件文件夹:Senparc.Weixin.MP/AdvancedAPIs/User
源代码中相关方法如下:
namespace Senparc.Weixin.MP.AdvancedAPIs
{
//接口详见:http://mp.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF
/// <summary>
/// 用户接口
/// </summary>
public static class User
{
/// <summary>
/// 获取用户信息
/// </summary>
/// <param name="accessToken">调用接口凭证</param>
/// <param name="openId">普通用户的标识,对当前公众号唯一</param>
/// <param name="lang">返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语</param>
/// <returns></returns>
public static UserInfoJson Info(string accessToken, string openId, Language.zh_CN)
{
string url = string.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang={2}",
accessToken, openId, lang.ToString());
return HttpUtility.Get.GetJson<UserInfoJson>(url);
//错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):
//{"errcode":40013,"errmsg":"invalid appid"}
}
/// <summary>
/// 获取关注着OpenId信息
/// </summary>
/// <param name="accessToken"></param>
/// <param name="nextOpenId"></param>
/// <returns></returns>
public static OpenIdResultJson Get(string accessToken, string nextOpenId)
{
string url = string.Format("https://api.weixin.qq.com/cgi-bin/user/get?access_token={0}",
accessToken);
if (!string.IsNullOrEmpty(nextOpenId))
{
url += "&next_openid=" + nextOpenId;
}
return HttpUtility.Get.GetJson<OpenIdResultJson>(url);
}
}
}分组接口
源文件文件夹:Senparc.Weixin.MP/AdvancedAPIs/Groups
源代码中相关方法如下:
namespace Senparc.Weixin.MP.AdvancedAPIs
{
/// <summary>
/// 用户组接口
/// </summary>
public static class Groups
{
/// <summary>
/// 创建分组
/// </summary>
/// <returns></returns>
public static CreateGroupResult Create(string accessToken, string name)
{
var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/create?access_token={0}";
var data = new
{
group = new
{
name = name
}
};
return CommonJsonSend.Send<CreateGroupResult>(accessToken, urlFormat, data);
}
/// <summary>
/// 发送文本信息
/// </summary>
/// <param name="accessToken"></param>
/// <returns></returns>
public static GroupsJson Get(string accessToken)
{
var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token={0}";
var url = string.Format(urlFormat, accessToken);
return HttpUtility.Get.GetJson<GroupsJson>(url);
}
/// <summary>
/// 获取用户分组
/// </summary>
/// <param name="accessToken"></param>
/// <param name="openId"></param>
/// <returns></returns>
public static GetGroupIdResult GetId(string accessToken, string openId)
{
var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/getid?access_token={0}";
var data = new { openid = openId };
return CommonJsonSend.Send<GetGroupIdResult>(accessToken, urlFormat, data);
}
/// <summary>
/// 创建分组
/// </summary>
/// <param name="accessToken"></param>
/// <param name="id"></param>
/// <param name="name">分组名字(30个字符以内)</param>
/// <returns></returns>
public static WxJsonResult Update(string accessToken, int id, string name)
{
var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/update?access_token={0}";
var data = new
{
group = new
{
id = id,
name = name
}
};
return CommonJsonSend.Send(accessToken, urlFormat, data);
}
/// <summary>
/// 移动用户分组
/// </summary>
/// <param name="accessToken"></param>
/// <param name="openId"></param>
/// <param name="toGroupId"></param>
/// <returns></returns>
public static WxJsonResult MemberUpdate(string accessToken, string openId, int toGroupId)
{
var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token={0}";
var data = new
{
openid = openId,
to_groupid = toGroupId
};
return CommonJsonSend.Send(accessToken, urlFormat, data);
}
}
}客服接口
说明一下,这里的客服接口和之前的“多客服”是有差别的,之前介绍的多客服是把用户对话状态切换到多客服客,消息发送到专门的多客服户端,这个对话是由用户主动发起的。而这里的“客服”实际上是指在任意时间,主动推送消息给指定过的用户(用户在48小时内有过互动),对话不需要由用户主动发起。
源文件文件夹:Senparc.Weixin.MP/AdvancedAPIs/Custom
源代码中相关方法如下:
namespace Senparc.Weixin.MP.AdvancedAPIs
{
/// <summary>
/// 客服接口
/// </summary>
public static class Custom
{
private const string URL_FORMAT = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={0}";
/// <summary>
/// 发送文本信息
/// </summary>
/// <param name="accessToken"></param>
/// <param name="openId"></param>
/// <param name="content"></param>
/// <returns></returns>
public static WxJsonResult Sen

