1. Introduction
Dans les documents de développement des fonctions WeChat précédents, les fonctions de chaque WeChat sont indépendantes. ne fournissent qu’une seule fonction, qui ne répond pas aux besoins des développeurs et des clients de masse. Par conséquent, dans cet article, nous intégrerons brièvement les fonctions WeChat développées précédemment pour référence des lecteurs.
2. Analyse des idées
Un moyen simple consiste à intercepter les mots-clés, puis à juger et à exécuter le code de fonction correspondant. Cette approche est plus adaptée aux WeChat simples avec peu de fonctions ; une autre approche consiste à numéroter chaque fonction, puis à enregistrer l'état de la fonction sélectionnée par l'utilisateur. Chaque fois que l'utilisateur interroge, déterminez d'abord son état, puis exécutez le code de fonction correspondant. Cette approche convient à WeChat qui intègre de nombreuses fonctions complexes ; les développeurs peuvent choisir en fonction de leurs propres besoins. Dans cet article, nous expliquerons l'intégration des fonctions météo et de traduction. L'intégration de plus de fonctions est similaire.
3. Méthodes d'interception de mots clés
3.1 Interception de mots clés
Nous définissons que le format des messages envoyés par les utilisateurs est fixe. Le format de requête météo est « météo régionale », comme « météo de Suzhou », « météo de Pékin », donc interceptez d'abord les deux derniers mots pour déterminer s'il s'agit de « météo ». . Caractères clés, puis interceptez le nom de la ville précédente pour la requête. De la même manière, la traduction intercepte également les deux premiers mots pour déterminer s'il s'agit du mot-clé « traduction », puis intercepte le texte suivant pour une opération de requête.
//截取关键字 $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 Intégration des fonctions
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"; }
Instructions : Ici, nous avons encapsulé la requête météo et la traduction dans les fonctions _weather() et _baiduDic(), puis importé ces fichiers et les avons appelés directement ici, ce qui est très pratique.
De cette manière, nous avons complété l'intégration des fonctions météo et de traduction.
Test 3.3
Test réussi.
4. Méthode d'enregistrement de l'état
4.1 Description
Tout d'abord, nous devons combiner chacun Numéro de fonction, par exemple :
Numéro de série de réponse :
1. Requête météo
2. Requête de traduction
Utilisez ensuite la base de données pour enregistrer celle de l'utilisateur. interroger le statut de l'utilisateur Chaque fois qu'un message est saisi, le système interroge d'abord le statut de l'utilisateur dans la base de données, puis effectue les opérations correspondantes.
4.2 Créer une table de statut utilisateur user_flags dans la base de données.
-- -- 表的结构 `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;
4.3 Présentation des fichiers de fonctions de base de données
Pour faire fonctionner la base de données, vous devez introduire les fichiers d'opération de données La base de données cloud MySQL fournie par BAE est utilisée ici.
//引入数据库文件 require_once('includes/mysql_bae.func.php');
4.4 Déterminer le statut de l'utilisateur
//判断用户状态 $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]; }
Explication : Obtenez flag_id de la table user_flags et attribuez-le à $user_flag pour l'opération de jugement suivante.
4.5 Déterminer le statut existant de l'utilisateur et le statut de la nouvelle entrée
if(trim($keyword) <> $user_flag && is_numeric($keyword)) { $user_flag = ''; $sql = "DELETE FROM user_flags WHERE from_user = '$fromUsername'"; _delete_data($sql); }
Instructions : Jugez le statut existant de l'utilisateur et le statut nouvellement saisi. Si le statut est différent et que le mot-clé saisi est un nombre, définissez $user_flag pour vider et effacer le statut dans la base de données, comme s'il s'agissait du premier processus de requête.
4.6 Jugement du statut de l'utilisateur
A. le statut est vide, c'est-à-dire la première requête
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); } }
Explication : Le statut de l'utilisateur est vide, c'est-à-dire la première requête si le mot-clé saisi par l'utilisateur est le numéro de série de la fonction, c'est-à-dire 1 ou. 2, le statut de l'utilisateur est écrit dans la base de données, puis un message d'invite est émis ; Si le mot-clé saisi par l'utilisateur n'est pas un numéro de série de fonction, un message d'aide sera émis pour inviter l'utilisateur à saisir.
B. Le statut de l'utilisateur n'est pas vide
else{ if ($user_flag == '1') { $contentStr = _weather($keyword); //查询天气 }elseif ($user_flag == '2') { $contentStr = _baiduDic($keyword); //翻译 } }
Description : Statut de l'utilisateur S'il n'est pas vide, l'utilisateur a déjà effectué une opération de requête. Tant que l'utilisateur ne change pas de fonction, il restera sous la fonction existante et exécutera le code correspondant.
Test 4.7
Pour plus d'articles liés à l'intégration des fonctions de développement de la plateforme publique WeChat, veuillez faire attention au site Web PHP chinois !