WeChatパブリックプラットフォーム開発機能統合

高洛峰
リリース: 2017-03-06 09:27:10
オリジナル
1511 人が閲覧しました

1. はじめに

前述の WeChat 機能開発ドキュメントでは、各 WeChat の機能は独立して 1 つの機能しか提供できませんが、これは大量の開発者や顧客のニーズと一致しません。 。 必要。したがって、この記事では、読者の参考のために、以前に開発された WeChat の機能を簡単に統合します。

2. アイデア分析

簡単な方法は、キーワードをインターセプトし、対応する関数コードを判断して実行することです。このアプローチは、機能が少ない単純な WeChat に適しています。別のアプローチは、各機能に番号を付け、ユーザーがクエリを実行するたびに、最初にステータスを確認してから、対応する機能コードを実行することです。このアプローチは、多くの複雑な機能を統合する WeChat に適しており、開発者は独自のニーズに応じて選択できます。この記事では、天気と翻訳機能の統合について説明します。その他の機能の統合も同様です。

3. キーワード傍受方法

3.1 キーワード傍受

ユーザが送信するメッセージ形式は固定とし、天気クエリ形式は「地域+天気」などと定義する。 Suzhou "Weather"、"Beijing Weather" であるため、最初に最後の 2 つの単語をインターセプトして、それが "weather" キーワードであるかどうかを判断し、次にクエリのために前の都市名をインターセプトします。同様に、翻訳では最初の 2 つの単語をインターセプトして、それらが「翻訳」キーワードであるかどうかを判断し、その後、クエリ操作のために次のテキストをインターセプトします。

//截取关键字 $weather_key = mb_substr($keyword,-2,2,"UTF-8"); $city_key = mb_substr($keyword,0,-2,"UTF-8"); $translate_key = mb_substr($keyword,0,2,"UTF-8"); $word_key = mb_substr($keyword,2,200,"UTF-8");
ログイン後にコピー

3.2 関数の統合

if($weather_key == '天气' && !empty($city_key) && $translate_key != '翻译'){ $contentStr = _weather($city_key); }elseif($translate_key == '翻译' && !empty($word_key)){ $contentStr = _baiduDic($word_key); }else{ $contentStr = "感谢您关注【卓锦苏州】\n微信号:zhuojinsz"; }
ログイン後にコピー

注:ここでは、天気クエリと変換を関数 _weather() と _baiduDic() にカプセル化し、これらのファイルを導入しました。これを呼び出すことができます。ここに直接アクセスできるので、とても便利です。

このようにして、天気と翻訳機能の統合が完了しました。

3.3 テスト

WeChatパブリックプラットフォーム開発機能統合

テストは成功しました。

4. ステータスの記録方法

4.1 説明

まず、

応答番号:

1. 翻訳クエリ

のように、各機能に番号を付ける必要があります。次に、データベースを使用してユーザーのクエリ ステータスを記録します。ユーザーがメッセージを入力するたびに、システムはまずデータベースからユーザーのステータスをクエリし、対応する操作を実行します。

4.2 ユーザーステータステーブル user_flags.を作成する

-- -- 表的结构 `user_flags` -- CREATE TABLE IF NOT EXISTS `user_flags` ( `from_user` varchar(50) NOT NULL, `flag_id` int(4) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
ログイン後にコピー

WeChatパブリックプラットフォーム開発機能統合

4.3 データベース関数ファイルを導入する

データベースを操作するには、MySQL のデータの操作ファイルを導入する必要があります。ここでは BAE が提供するクラウドを使用します。

//引入数据库文件 require_once('includes/mysql_bae.func.php');
ログイン後にコピー

4.4 ユーザーステータスの決定

//判断用户状态 $sql = "SELECT flag_id FROM user_flags WHERE from_user = '$fromUsername' LIMIT 0,1"; $result = _select_data($sql); while (!!$rows = mysql_fetch_array($result)) { $user_flag = $rows[flag_id]; }
ログイン後にコピー

説明:

user_flagsテーブルからflag_idを取得し、以下の判定操作のために$user_flagに代入します。

4.5 ユーザーの既存のステータスと新たに入力されたステータスを判定する

if(trim($keyword) <> $user_flag && is_numeric($keyword)) { $user_flag = ''; $sql = "DELETE FROM user_flags WHERE from_user = '$fromUsername'"; _delete_data($sql); }
ログイン後にコピー

説明:

ユーザーの既存のステータスと新たに入力されたステータスが異なり、入力されたキーワードが数字である場合に判定します。その後、$user_flag を空に設定し、最初のクエリ処理と同様にデータベース内のステータスをクリアします

4.6 ユーザーステータスの判断

A.

ステータスは空、つまり最初のクエリ

if (empty($user_flag)) { switch ($keyword) { case 1: //查询天气 $sql = "insert into user_flags(from_user,flag_id) values('$fromUsername','1')"; $contentStr = "请输入要查询天气的城市:如北京、上海、苏州"; break; case 2: //翻译 $sql = "insert into user_flags(from_user,flag_id) values('$fromUsername','2')"; $contentStr = "请输入要翻译的内容:如:早上好、good morning、おはよう"; break; default: //其他 $sql = ""; $contentStr = "感谢您关注【卓锦苏州】\n微信号:zhuojinsz\n请回复序号:\n1. 天气查询\n2. 翻译查询\n输入【帮助】查看提示\n更多内容,敬请期待..."; break; } //判断并执行上面的插入语句 if (!empty($sql)) { _insert_data($sql); } }
ログイン後にコピー

手順:

ユーザーステータスが空、つまり最初のクエリの場合、ユーザーが入力したキーワードが関数シリアル番号、つまり 1 または 2 の場合、ユーザーステータスがデータベースに書き込まれます。プロンプト メッセージが表示され、ユーザーが入力したキーワードが関数シリアル番号ではない場合は、ヘルプ情報が表示され、ユーザーは入力を求められます。

B.

ユーザーステータスは空ではありません

else{ if ($user_flag == '1') { $contentStr = _weather($keyword); //查询天气 }elseif ($user_flag == '2') { $contentStr = _baiduDic($keyword); //翻译 } }
ログイン後にコピー

説明:

ユーザーが機能を切り替えない限り、ユーザーステータスは空ではありません。既存の関数の下に残り、対応するコードを実行します。

4.7 テスト

WeChat パブリック プラットフォーム開発機能の統合に関するその他の記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!