企业微信应用文本消息

应用支持推送文本、图片、视频、文件、图文等类型,本篇主要实现发送应用文本消息。

获取企业凭证

发送应用消息首先需要获取调用凭证access_token,此处的凭证为企业凭证,可通过企业授权安装时返回的授权信息中获取access_token;之后可通过获取企业凭证进行刷新。

请求方式

POST

请求地址

https://qyapi.weixin.qq.com/cgi-bin/service/get_corp_token?suite_access_token=SUITE_ACCESS_TOKEN

请求包体

{
    "auth_corpid": "auth_corpid_value",
    "permanent_code": "code_value"
}

方法示例

需要授权企业id和企业永久授权码及三方企业凭证,先写好方法下方发送应用消息时使用。

代码如下:

/**
 * 获取授权企业access_token
 * @param $corpid
 * @param $permanent_code
 * @return array|mixed
 */
public function getCompanyToken($corpid, $permanent_code)
{
    $access_token = '三方企业凭证';
    $url = 'https://qyapi.weixin.qq.com/cgi-bin/service/get_corp_token?suite_access_token=' . $access_token;
    $params = json([
        'auth_corpid' => $corpid,
        'permanent_code' => $permanent_code
    ]);
    $info = $this->linkCurl($url, 'POST', $params);
    $res = djson($info);
    if (isset($res['errcode']) && $res['errcode'] != 0) {
        return toFail($res['errmsg']);
    }
    return toSuccess('success', ['token' => $res['access_token']]);
}

参数说明

参数

是否必须

说明

suite_access_token

三方应用凭证,获取点击可查看

auth_corpid

授权方企业corpid,通过获取永久授权码得到

permanent_code

永久授权码,通过get_permanent_code获取

 

返回结果

返回结果为json格式。

{
    "errcode":0 ,
    "errmsg":"ok" ,
    "access_token": "xxxxxx", 
    "expires_in": 7200
}

参数说明

参数

说明

access_token

授权方(企业)access_token,最长为512字节

expires_in

授权方(企业)access_token有效时间

应用消息

应用支持推送文本、图片、视频、文件、图文等类型。

请求方式

POST

 

请求地址

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

 

参数说明

参数

是否必须

说明

access_token

调用接口企业凭证

发送文本消息

其他消息类型需要上传临时素材后,才可调用暂无用到其他类型功能,因此本篇暂时只实现文本消息。

请求示例

通过上方封装好的凭证方法获取企业凭证,之后编辑好文本消息包体内容。

代码如下:

/**
 * 发送企业微信-文本消息
 * @return array|bool|mixed|string
 */
public function sendAppTextMsg()
{
    $get_token = $this->getCompanyToken('授权企业id', '企业永久授权码');
    if ($get_token['status'] != 1) {
        return $get_token;
    }
    $access_token = $get_token['data']['token'] ?? '';
    $url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?debug=1&access_token=' . $access_token;
    // 参数设置
    $params = json([
        "touser" => "YuanLaiShiNi",
        "msgtype" => "text",
        "agentid" => '授权企业安装时获取的agentid',
        "text" => [
            "content" => "今天已经是周三,请尽快完成计划完成事件。\n详情可点击<a href='http://www.baidu.com'>计划清单</a>查看,\n按照轻重缓急完成。"
        ],
        "safe" => 0,
        "enable_id_trans" => 0,
        "enable_duplicate_check" => 0,
        "duplicate_check_interval" => 1800,
    ]);

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

特殊说明

其中text参数的content字段可以支持换行、以及A标签,即可打开自定义的网页(可参考以上示例代码)(注意:换行符请用转义过的\n)

文本消息显示

返回内容
{"errcode":0,"errmsg":"ok","msgid":"WpLDpQFMGSE843kRbNhgXV0ggM0ngtU7e4rl2FNJGnSHw6BCjVyX8G_4bz8CpnrVjV1rbMI_h_xzkPismuXuQg"}

返回参数说明

参数

说明

errcode

返回码

errmsg

对返回码的文本描述内容

invaliduser

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

invalidparty

不合法的partyid

invalidtag

不合法的标签id

unlicenseduser

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

msgid

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

response_code

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

注意

支持重复消息检查,当指定 "enable_duplicate_check": 1开启: 表示在一定时间间隔内,同样内容(请求json)的消息,不会重复收到;时间间隔可通过duplicate_check_interval指定,默认1800秒。

调用建议:大部分企业应用在每小时的0分或30分触发推送消息,容易造成资源挤占,从而投递不够及时,建议尽量避开这两个时间点进行调用。

频率限制:每应用不可超过账号上限数*200人次/天(注:若调用api一次发给1000人,算1000人次;若企业账号上限是500人,则每个应用每天可发送100000人次的消息)。每应用对同一个成员不可超过30次/分钟,1000次/小时,超过部分会被丢弃不下发。

总结

感觉企业微信中的文本消息类似于手机中的短信,还可以加跳转网站的链接,操作比较简单。

  • 25
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 Go 语言中向企业微信发送应用消息,你可以使用企业微信提供的应用消息接口来实现。以下是一个简单的示例代码: ```go package main import ( "bytes" "encoding/json" "fmt" "net/http" ) type WeChatMessage struct { ToUser string `json:"touser"` MsgType string `json:"msgtype"` AgentID int `json:"agentid"` Text struct { Content string `json:"content"` } `json:"text"` } func main() { apiURL := "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=YOUR_ACCESS_TOKEN" // 构建消息内容 message := WeChatMessage{ ToUser: "userid1|userid2", // 接收消息的用户,多个用户使用 | 分隔 MsgType: "text", // 消息类型为文本消息 AgentID: 1000001, // 企业微信应用的 AgentID Text: struct { Content string `json:"content"` }{ Content: "这是一条来自企业微信应用消息", }, } // 将消息内容转换为 JSON 格式 messageData, err := json.Marshal(message) if err != nil { fmt.Println("JSON marshal error:", err) return } // 发送 POST 请求到企业微信应用消息接口 resp, err := http.Post(apiURL, "application/json", bytes.NewReader(messageData)) if err != nil { fmt.Println("HTTP request error:", err) return } defer resp.Body.Close() // 处理响应结果 if resp.StatusCode != http.StatusOK { fmt.Println("API request failed:", resp.Status) return } fmt.Println("Message sent successfully!") } ``` 请注意,在上述代码中,你需要将 `YOUR_ACCESS_TOKEN` 替换为你的企业微信应用的访问令牌(Access Token)。你可以通过企业微信提供的接口获取访问令牌,并确保访问令牌是有效的。 此外,还需要替换 `userid1|userid2` 为接收消息的用户的 UserID,多个用户之间使用 `|` 分隔。你可以在企业微信后台管理界面查找和管理用户的 UserID。 以上代码仅提供了一个基本的示例,你可以根据自己的实际需求进行扩展和调整。注意保护好访问令牌的安全性,避免泄露给未授权的人员。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JSON_L

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

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

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

打赏作者

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

抵扣说明:

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

余额充值