1. Einführung
In den vorherigen WeChat-Funktionsentwicklungsdokumenten sind die Funktionen jedes WeChats unabhängig stellen nur eine Funktion bereit, die den Anforderungen von Massenentwicklern und Kunden nicht gerecht wird. Daher werden wir in diesem Artikel als Referenz für die Leser kurz die zuvor entwickelten WeChat-Funktionen integrieren.
2. Ideenanalyse
Eine einfache Möglichkeit besteht darin, Schlüsselwörter abzufangen und dann den entsprechenden Funktionscode zu beurteilen und auszuführen. Dieser Ansatz eignet sich besser für einfaches WeChat mit wenigen Funktionen. Ein anderer Ansatz besteht darin, jede Funktion zu nummerieren und dann den vom Benutzer ausgewählten Funktionsstatus aufzuzeichnen. Dieser Ansatz eignet sich für WeChat, das viele komplexe Funktionen integriert; Entwickler können entsprechend ihren eigenen Anforderungen auswählen. In diesem Artikel erklären wir die Integration von Wetter- und Übersetzungsfunktionen.
3. Methoden zum Abfangen von Schlüsselwörtern
3.1 Abfangen von Schlüsselwörtern
Wir legen fest, dass das Format der von Benutzern gesendeten Nachrichten „Region + Wetter“ ist, z. B. „Suzhou-Wetter“ oder „Peking-Wetter“. Daher müssen zuerst die letzten beiden Wörter abgefangen werden, um festzustellen, ob es sich um „Wetter“ handelt " Schlüsselwort und fangen Sie dann den Namen der vorherigen Stadt ab, um sie abzufragen. Auf die gleiche Weise fängt die Übersetzung auch die ersten beiden Wörter ab, um festzustellen, ob es sich um das Schlüsselwort „Übersetzung“ handelt, und fängt dann den folgenden Text für den Abfragevorgang ab.
//截取关键字 $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 Funktionsintegration
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"; }
Anleitung: Hier haben wir die Wetterabfrage und -übersetzung in die Funktionen _weather() und _baiduDic() gekapselt, diese Dateien dann importiert und direkt hier aufgerufen, was sehr praktisch ist.
Damit haben wir die Integration von Wetter- und Übersetzungsfunktionen abgeschlossen.
3.3 Test
Test erfolgreich.
4. Statusaufzeichnungsmethode
4.1 Beschreibung
Zuerst müssen wir alle kombinieren Funktionsnummer, zum Beispiel:
Antwortseriennummer:
1. Wetterabfrage
2. Verwenden Sie dann die Datenbank, um die zu erfassen Status abfragen, der Benutzer Bei jeder Eingabe einer Nachricht fragt das System zunächst den Status des Benutzers aus der Datenbank ab und führt dann entsprechende Operationen aus.
4.2 Benutzerstatustabelle user_flags in der Datenbank erstellen.-- -- 表的结构 `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;
Um die Datenbank zu betreiben, müssen Sie Datenoperationsdateien einführen. Hier wird die von BAE bereitgestellte MySQL-Cloud-Datenbank verwendet.
//引入数据库文件 require_once('includes/mysql_bae.func.php');
4.4 Benutzerstatus ermitteln
//判断用户状态 $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]; }
Flag_id aus der Tabelle „user_flags“ abrufen und $user_flag für die folgende Beurteilungsoperation zuweisen.
4.5 Bestimmen Sie den bestehenden Status des Benutzers und den Status neuer Eingabenif(trim($keyword) <> $user_flag && is_numeric($keyword)) { $user_flag = ''; $sql = "DELETE FROM user_flags WHERE from_user = '$fromUsername'"; _delete_data($sql); }
Beurteilen Sie den aktuellen Status des Benutzers und den neu eingegebenen Status. Wenn der Status unterschiedlich ist und das eingegebene Schlüsselwort eine Zahl ist, setzen Sie $user_flag auf leer und löschen Sie den Status in der Datenbank, als wäre es der erste Abfragevorgang
4.6 Beurteilung des BenutzerstatusA.
Status ist leer, d. h. die erste Abfrage
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); } }
Der Benutzerstatus ist leer, d. h. die erste Abfrage. Wenn das vom Benutzer eingegebene Schlüsselwort die Funktionsseriennummer ist, d. h. 1 oder 2. Der Benutzerstatus wird in die Datenbank geschrieben und anschließend wird eine Eingabeaufforderung ausgegeben. Wenn das vom Benutzer eingegebene Schlüsselwort keine Funktionsseriennummer ist, wird eine Hilfenachricht angezeigt, die den Benutzer zur Eingabe auffordert.
B.Benutzerstatus ist nicht leer
else{ if ($user_flag == '1') { $contentStr = _weather($keyword); //查询天气 }elseif ($user_flag == '2') { $contentStr = _baiduDic($keyword); //翻译 } }
Benutzerstatus Wenn es nicht leer ist, hat der Benutzer bereits einen Abfragevorgang ausgeführt. Solange der Benutzer die Funktion nicht wechselt, bleibt er unter der vorhandenen Funktion und führt den entsprechenden Code aus.
4.7 Test
Weitere Artikel zur Integration von WeChat-Entwicklungsfunktionen für öffentliche Plattformen finden Sie auf der chinesischen PHP-Website!