WeChatのパブリックアカウントの人気が高まっているため、ますます多くの企業と開発者がWeChatプラットフォームのアプリケーション開発に注意を払い始めています。その中でも、テンプレートメッセージは効率的な通知方法であり、リマインダー、ステータスの更新、システム通知、その他のシナリオで広く使用されています。この記事では、PHPを介したWeChat Publicアカウントテンプレートメッセージの送信機能を実装する方法を紹介し、開発者が迅速に開始できるようにする完全なコード例を提供します。
開発プロセス中に、テンプレートメッセージの送信を実現するには、次の条件を満たす必要があります。
アクセストークンは、WeChat APIを呼び出し、有効期間を持つ資格情報です。開発者は、APIを介してトークンを取得し、有効期限が切れた後に再誘導する必要があります。
function getAccessToken($appId, $appSecret) {
$apiUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appId . "&secret=" . $appSecret;
$response = file_get_contents($apiUrl);
$result = json_decode($response, true);
// 診るAccess Token有効かどうか
if (isset($result['access_token'])) {
return $result['access_token'];
} else {
// 取り扱いエラー
return false;
}
}
$accessToken = getAccessToken($appId, $appSecret);
アクセストークンを正常に取得した後、開発者はWeChatインターフェイスを介してテンプレートメッセージを送信できます。以下は特定の実装です。
function sendTemplateMessage($accessToken, $openId, $templateId, $data) {
$apiUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $accessToken;
$postData = array(
'touser' => $openId,
'template_id' => $templateId,
'data' => $data
);
$jsonData = json_encode($postData);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$response = curl_exec($ch);
curl_close($ch);
// インターフェイス応答を返します
return $response;
}
// サンプルテンプレートメッセージデータ
$templateData = array(
'first' => array('value' => 'こんにちは', 'color' => '#173177'),
'keyword1' => array('value' => 'テンプレートメッセージ', 'color' => '#173177'),
'keyword2' => array('value' => '2020-01-01', 'color' => '#173177'),
'remark' => array('value' => 'ご利用いただきありがとうございます', 'color' => '#173177')
);
$response = sendTemplateMessage($accessToken, $openId, $templateId, $templateData);
// 送信結果を処理します
$result = json_decode($response, true);
if ($result['errcode'] == 0) {
echo "テンプレートメッセージ发送成功!";
} else {
echo "テンプレートメッセージ发送失败,後でもう一度やり直してください。エラーメッセージ:" . $result['errmsg'];
}
上記のコードでは、 SendTemplateMessage関数は、アクセストークン、ユーザーOpenID、テンプレートID、およびテンプレートコンテンツの4つのパラメーターを受け入れます。その中で、 $データはテンプレート内の変数に対応する値で構成される配列であり、構造はWeChatテンプレートで定義された形式に準拠する必要があります。
この記事で提供されている方法を通して、開発者はPHPを使用して、WeChatパブリックアカウントテンプレートメッセージ送信機能をすばやく統合できます。テンプレートメッセージは、ユーザーエクスペリエンスを改善するだけでなく、企業がサービス通知や情報プッシュなどのタスクを効率的に完了するのにも役立ちます。
この記事の紹介コードとサンプルコードが実際の開発において役立つことを願っています。