企业微信小程序通知消息

使用企业微信发送应用消息中的小程序通知消息(只允许绑定了小程序的应用发送)。

目录

请求方式

请求地址

发送通知

参数说明

请求实例

返回

返回示例

返回参数说明

实现效果

总结


请求方式

POST

请求地址

https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN

此处的access_token为企业凭证,可查看《企业微信应用文本消息》中企业凭证。

发送通知

参数说明

参数

是否必须

说明

touser

成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)

toparty

部门ID列表,多个接收者用‘|’分隔,最多支持100个。

totag

标签ID列表,多个接收者用‘|’分隔,最多支持100个。

msgtype

消息类型,此时固定为:miniprogram_notice

appid

小程序appid,必须是与当前应用关联的小程序

page

点击消息卡片后的小程序页面,最长1024个字节,仅限本小程序内的页面。该字段不填则消息点击后不跳转。

title

消息标题,长度限制4-12个汉字(支持id转译)

description

消息描述,长度限制4-12个汉字(支持id转译)

emphasis_first_item

是否放大第一个content_item

content_item

消息内容键值对,最多允许10个item

key

长度10个汉字以内

value

长度30个汉字以内(支持id转译) 

key和value两个字段同时为空时,该键值对将被忽略

enable_id_trans

表示是否开启id转译,0表示否,1表示是,默认0

enable_duplicate_check

表示是否开启重复消息检查,0表示否,1表示是,默认0

duplicate_check_interval

表示是否重复消息检查的时间间隔,默认1800s,最大不超过4小时

请求实例

根据实际情况去掉了一些非必传的参数。

代码如下:

/**
 * 小程序通知消息(必须是绑定的小程序)
 * @return array|bool|mixed|string
 */
public function sendMinAppMsg()
{
    $get_token = $this->getCompanyToken('授权企业corpid', '授权企业permanent_code');
    if ($get_token['status'] != 1) {
        return $get_token;
    }
    $access_token = $get_token['data']['token'] ?? '';
    $url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' . $access_token;
    // 参数设置
    $params = json([
        "touser" => "YuanLaiShiNi",
        "msgtype" => "miniprogram_notice",
        "miniprogram_notice" => [
            "appid" => "wx0d12144a427b7567",
            "page" => "pages/index/index",
            "title" => "合同生成成功",
            "emphasis_first_item" => true,
            "content_item" => [
                [
                    "key" => "消息内容",
                    "value" => "您的合同模板已生成成功,点击查看详情"
                ],
                [
                    "key" => "合同名称",
                    "value" => "电子签合同"
                ],
                [
                    "key" => "我方企业",
                    "value" => "甲方"
                ]
            ]
        ]
    ]);

    return $this->linkCurl($url, 'POST', $params);
}

/**
 * 请求接口返回内容
 * @param $url : 请求的URL地址
 * @param $method : 请求方式POST|GET
 * @param bool $params : 请求的参数
 * @param bool $header : 请求头
 * @return bool|string
 */
protected function linkCurl($url, $method, $params = false, $header = false)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($ch, CURLOPT_URL, $url);
    //curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_FAILONERROR, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if (strpos("$" . $url, "https://") == 1) {
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    if ($method == "POST") {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    } else if ($params) {
        curl_setopt($ch, CURLOPT_URL, $url . '?' . http_build_query($params));
    }
    $response = curl_exec($ch);
    if ($response === FALSE) return false;

    curl_close($ch);
    return $response;
}

返回

返回示例
{
    "errcode":0,
    "errmsg":"ok",
    "invaliduser":"",
    "invalidparty":"",
    "invalidtag":"",
    "msgid":"WpLDpQFMGSE843kRbNhgXVKhR9MTTv16t9nfcFZtpE-B8hfbwPfoWFO4IUU1yQwDq05FcCTKlOM023m5M49PyA"
}

返回参数说明

参数

说明

errcode

返回码

errmsg

对返回码的文本描述内容

invaliduser

不合法的userid,不区分大小写,统一转为小写

invalidparty

不合法的partyid

invalidtag

不合法的标签id

unlicenseduser

没有基础接口许可(包含已过期)的userid

msgid

消息id,用于撤回应用消息

response_code

仅消息类型为“按钮交互型”,“投票选择型”和“多项选择型”的模板卡片消息返回,应用可使用response_code调用更新模版卡片消息接口,72小时内有效,且只能使用一次

实现效果

点击可进入相应小程序设置的页面,第一次会需要微信扫码授权。

总结

小程序通知消息是发送企业应用消息中的一种消息类型,接口是相同的,实现步骤都需要获取授权企业的凭证,之后传入相应的参数(参数与文本消息不同)发送消息。

### 关于企业微信通知API #### 群通知接口概述 企业微信提供了多种方式来发送消息给成员或应用,其中包括向特定群聊发送通知。为了实现这一功能,开发者可以通过调用相应的RESTful API完成操作。这类接口允许应用程序集成商在不需要用户频繁手动干预的前提下自动执行任务,比如定时提醒、重要公告发布等。 对于群组内的广播性质的消息传递,存在专门的应用消息推送机制[^1]。需要注意的是,在实际开发过程中应当遵循官方指南中的权限设置以及频率限制等相关规定以确保合法合规地利用这些特性。 #### 发送应用消息至群聊的具体方法 要将消息推送到某个具体的群中,通常会采用如下流程: - 获取并保存目标聊天室ID; - 构建请求体,其中需包含接收者信息(即上述提到的ChatId)、消息类型及具体内容; - 使用HTTPS POST请求访问`https://qyapi.weixin.qq.com/cgi-bin/appchat/send?access_token=ACCESS_TOKEN`路径下的接口; 以下是Python语言编写的简单示例代码片段展示如何构建这样的HTTP请求: ```python import requests import json def send_group_message(chatid, content): url = "https://qyapi.weixin.qq.com/cgi-bin/appchat/send" params = { 'access_token': get_access_token() # 此处应替换为获取token的实际函数 } payload = { "chatid": chatid, "msgtype": "text", "text": {"content": content} } headers = {'Content-Type': 'application/json'} response = requests.post(url=url, params=params, data=json.dumps(payload), headers=headers) return response.json() ``` 此段脚本实现了基本的文字形式的信息传输逻辑。当然,除了纯文本之外还支持其他多种形式的内容分享,如链接卡片、文件附件等等,具体可参阅官方文档了解更详细的配置选项和支持的功能列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值