當前位置: 首頁> 最新文章列表> PHP 實現企業微信消息推送訂閱的完整方案

PHP 實現企業微信消息推送訂閱的完整方案

M66 2025-07-02

企業微信消息推送簡介

企業微信是一款面向企業組織的溝通工具,支持豐富的API 接口,適合內部消息、業務提醒和系統通知的快速傳達。通過集成企業微信的消息訂閱功能,可以實現對員工或部門的定向消息推送。

準備工作:創建企業微信應用

首先需在企業微信後台創建一個自建應用,記錄並保管好以下關鍵信息:

  • 企業ID(CorpID)
  • 應用ID(AgentID)
  • 應用Secret(密鑰)

安裝所需依賴庫

為了簡化HTTP 請求及Token 生成過程,推薦通過Composer 安裝以下庫:

  • guzzlehttp/guzzle - 用於發送HTTP 請求
  • firebase/php-jwt - 用於生成和解析JWT

了解企業微信的消息結構

企業微信的消息發送接口需遵循特定的數據結構。以下是一個標準的請求體示例:

 
{
  "touser": "UserID1|UserID2",
  "agentid": 1,
  "msgtype": "text",
  "text": {
    "content": "消息內容"
  },
  "safe": 0
}

字段說明:

  • touser :消息接收人,多人用“|”分隔
  • agentid :應用ID
  • msgtype :消息類型,如“text”、“image”等
  • text :消息內容結構
  • safe :是否為保密消息,0為普通,1為加密

PHP 實現接口調用

以下是一個使用PHP 構建並調用企業微信接口發送消息的完整示例:

 
require 'path/to/vendor/autoload.php';

use GuzzleHttp\Client;
use Firebase\JWT\JWT;

// 企業微信配置
$corpId  = '企業ID';
$agentId = '應用ID';
$secret  = '應用密钥';

function sendMsg($touser, $content) {
    global $corpId, $agentId, $secret;

    $data = [
        'touser'  => $touser,
        'agentid' => $agentId,
        'msgtype' => 'text',
        'text'    => [ 'content' => $content ],
        'safe'    => 0
    ];

    // 生成 JWT Token
    $time = time();
    $payload = [
        'iat' => $time,
        'exp' => $time + 3600,
        'iss' => $corpId
    ];
    $token = JWT::encode($payload, $secret);

    // 發送 HTTP 請求
    $client = new Client(['base_uri' => 'https://qyapi.weixin.qq.com']);
    $response = $client->request('POST', '/cgi-bin/message/send', [
        'query' => ['access_token' => $token],
        'json'  => $data
    ]);

    $result = json_decode($response->getBody(), true);
    return $result['errcode'] === 0;
}

調用接口發送消息

在實際業務邏輯中,可以按需調用該接口:

 
// 示例:發送消息
$touser = 'UserID1';
$content = '您有新的消息,請及時查看。';
$result = sendMsg($touser, $content);

if ($result) {
    echo '消息發送成功';
} else {
    echo '消息發送失败';
}

總結與優化建議

本文介紹瞭如何通過PHP 實現企業微信的消息訂閱功能。開發者可根據實際需求進一步優化:

  • 增加異常捕獲機制
  • 支持圖文、卡片等更多消息類型
  • 結合數據庫,實現動態消息內容
  • 封裝為類庫,便於復用

通過這一方案,企業可以構建起高效、可靠的內部消息通知系統,有效提升信息傳達效率。