


Hello2BizUser テキストからイベントを購読するまでの WeChat パブリック プラットフォーム メッセージ インターフェイスの開発
Mar 04, 2017 pm 02:49 PM1. 古い Hello2BizUser イベントの処理
古いアテンション イベントでは、ユーザーが WeChat パブリック プラットフォーム アカウントをフォローした後、システムはユーザーがバックグラウンド開発モードで Hello2BizUser のテキストをパブリック アカウントに送信するのを支援します。公開アカウントの場合、Hello2BizUser の単語を判斷してウェルカム メッセージを送信します。
コードサンプルは次のとおりです:
if ($keyword == "Hello2BizUser"){ $contentStr = "PHP中文網(wǎng)"; $resultStr = $this->transmitText($object, $contentStr, $funcFlag); return $resultStr; }
基本的なインターフェースに変更を加えると、全員に影響します。一般に、そのような変更は簡単には行われません。
なぜ WeChat はこのイベントを変更したいのでしょうか? この方法の欠點(diǎn)は、ユーザーがこのイベントを判斷しない場合、ウェルカム メッセージが表示されないことです。本來、これは問題ではなく、ウェルカム メッセージがなくても問題はありません。何も影響しません。しかし、多くの人のプログラム コードでは、すべてのプロセスがキーワードの判斷に直接基づいています。たとえば、病院の WeChat アカウントでは、ユーザーが登録番號を送信すると、その前に何人が並んでいるのかが表示されますが、バックグラウンド プログラムは區(qū)別せず、登録順序として Hello2BizUser を送信します。登録番號 Hello2BizUser が見つかりません。目の前に何人いるのかわかりません。ユーザーは混亂しています。また、ユーザーが率先して Hello2BizUser を送信すると、ウェルカム メッセージと同じ內(nèi)容が返されますが、これを送信するユーザーはほとんどいません。
その一方で、ユーザーの注意をイベントに変えることは、統(tǒng)計(jì)関數(shù)の実現(xiàn)にさらに役立ちます。このイベントを使用すると、フォロワーと購読解除者の數(shù)をより簡単に判斷できます。ただし、ユーザーが手動で送信して誤ったフォロー統(tǒng)計(jì)が形成されるため、元の Hello2BizUser テキスト プッシュの決定は不正確になる可能性があります。
2. 「subscribe」サブスクリプションイベントの判定
subscribe は新しいイベントです。まず、このイベントの判定を公式サンプルに追加し、次のように変更します。
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); switch ($RX_TYPE) { case "text": $resultStr = $this->receiveText($postObj); break; case "event": $resultStr = $this->receiveEvent($postObj); break; default: $resultStr = "unknow msg type: ".$RX_TYPE; break; }次に、イベント受信処理関數(shù)で購読イベントを決定します。
private function receiveEvent($object) { $contentStr = ""; switch ($object->Event) { case "subscribe": $contentStr = "您好,歡迎關(guān)注方倍工作室。新感覺,新體驗(yàn)!"; break; } $resultStr = $this->transmitText($object, $contentStr); return $resultStr; }これで、「購読」購読イベントの処理が完了します。
2. 完全なコード
<?php define("TOKEN", "方倍工作室"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->responseMsg(); class wechatCallbackapiTest { public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); switch ($RX_TYPE) { case "text": $resultStr = $this->receiveText($postObj); break; case "event": $resultStr = $this->receiveEvent($postObj); break; default: $resultStr = "unknow msg type: ".$RX_TYPE; break; } echo $resultStr; }else { echo ""; exit; } } private function receiveText($object) { $funcFlag = 0; $keyword = trim($object->Content); $resultStr = ""; $cityArray = array(); $contentStr = ""; $needArray = false; $illegal = false; $saytome = false; if ($keyword == "Hello2BizUser"){ $contentStr = "歡迎關(guān)注方倍工作室,這其實(shí)是老的歡迎詞,你關(guān)注時(shí)收不到了"; $resultStr = $this->transmitText($object, $contentStr, $funcFlag); return $resultStr; }else { } } private function receiveEvent($object) { $contentStr = ""; switch ($object->Event) { case "subscribe": $contentStr = "您好,歡迎關(guān)注方倍工作室。新感覺,新體驗(yàn)!"; break; } $resultStr = $this->transmitText($object, $contentStr); return $resultStr; } private function transmitText($object, $content, $flag = 0) { $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>%d</FuncFlag> </xml>"; $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag); return $resultStr; } } ?>Hello2BizUser からイベントを購読するための WeChat パブリック プラットフォーム メッセージ インターフェイス開発の詳細(xì)については、関連記事については、PHP 中國語 Web サイトに注目してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)