微信公众号通知和服务通知

微信公众号通知和服务通知

详细描述

以下简单对公众号通知和服务做一些总结:

公众号通知:
微信在公众号推送的通知,比较有针对性,无法禁止推送,除非取消关注;
推送权限: 用户必须有交互,包括并不仅限于:扫码、关注、点击菜单,发送消息(大概会获取推送二十条的权限)等,权限会是三天有效期

服务通知:
微信小程序通知的集合内容,所有小程序的服务通知会在一起推送;
推送权限: 必须有formId,一个formId对应一个推送权限,支付会三个,一个表单提交会攒一个,有效期七天!

### 实现C#应用向微信公众号发送推送通知 为了通过C#应用程序实现向微信公众号发送推送通知,需遵循特定流程来配置并调用相应的API接口。首先,要获得用于访问微信公众平台API的`access_token`,这是所有API请求的关键凭证。 #### 获取Access Token 全局唯一的`access_token`可以通过HTTP GET方法从官方服务器获取。具体来说,应构建如下URL并向其发起GET请求: ```plaintext https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET[^1] ``` 其中`APPID`和`APPSECRET`代表开发者账号下的小程序或服务号的身份标识符及其密钥。成功响应会返回JSON格式的数据包,内含所需的`access_token`字符串及过期时间戳。 #### 发送模板消息 一旦拥有了有效的`access_token`,就可以准备发送模板消息了。这一步骤涉及设置好接收者openid、模板ID以及其他必要的字段信息。以下是利用HttpClient库编写的简单示例代码片段展示如何执行此操作: ```csharp using System; using System.Net.Http; using Newtonsoft.Json.Linq; public class WeChatPushNotificationService { private static readonly string AccessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token"; private static readonly string SendMessageUrlFormat = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}"; public async Task SendTemplateMessageAsync(string appId, string appSecret, JObject messageData) { using (var client = new HttpClient()) { // Step 1: Get access token. var accessTokenResponse = await client.GetStringAsync($"{AccessTokenUrl}?grant_type=client_credential&appid={appId}&secret={appSecret}"); dynamic jsonResult = JObject.Parse(accessTokenResponse); string accessToken = jsonResult.access_token; // Step 2: Post template message with the obtained access token. var sendMessageUrl = String.Format(SendMessageUrlFormat, accessToken); HttpResponseMessage response = await client.PostAsync(sendMessageUrl, new StringContent(messageData.ToString(), Encoding.UTF8, "application/json")); if (!response.IsSuccessStatusCode) { throw new Exception($"Failed to send wechat push notification. Status code {response.StatusCode}, Reason phrase '{response.ReasonPhrase}'."); } } } } ``` 上述代码展示了怎样创建一个异步函数`SendTemplateMessageAsync()`,它接受三个参数:`appId`, `appSecret` 和待发送的消息体(作为JObject对象传递),并通过两次网络请求完成整个过程——先是取得临时令牌,接着使用该令牌提交实际的通知内容给定的目标用户。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值