ホームページ  >  記事  >  WeChat アプレット  >  WeChatパブリックプラットフォーム開発機能統合

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

高洛峰
高洛峰オリジナル
2017-03-06 09:27:101582ブラウズ

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 サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。