ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して WeChat 公開アカウントでカスタム メニューを開発する方法

PHP を使用して WeChat 公開アカウントでカスタム メニューを開発する方法

PHPz
PHPzオリジナル
2023-10-27 09:21:491216ブラウズ

PHP を使用して WeChat 公開アカウントでカスタム メニューを開発する方法

PHP を使用して WeChat 公開アカウントでカスタム メニューを開発する方法

WeChat 公開アカウントは非常に重要なメディアであり、多くの企業や個人が WeChat 公開アカウントの使用を選択しています。プロモーションとコミュニケーションのため。カスタム メニューは WeChat 公式アカウントに不可欠な部分であり、ユーザー エクスペリエンスとナビゲーション機能の向上に役立ちます。この記事では、PHP を使用してカスタム メニューを開発する方法を紹介し、具体的なコード例を示します。

まず、WeChat 公式アカウントのカスタム メニューに関連する概念と制限事項を理解する必要があります。

  1. カスタム メニューの種類
    WeChat 公開アカウントには、クリック プッシュ イベント、ジャンプ URL、およびスキャン コード プッシュ イベントの 3 つの主な種類のカスタム メニューがあります。
  • クリック プッシュ イベント: ユーザーがメニューをクリックすると、WeChat サーバーは開発者が設定した URL にメッセージをプッシュします。開発者はこの URL でユーザーのリクエストを処理できます。
  • ジャンプ URL: ユーザーがメニューをクリックすると、開発者が指定した URL ページに直接ジャンプします。
  • スキャン コード プッシュ イベント: ユーザーがメニューをクリックすると、WeChat クライアントは QR コードをスキャンするためのインターフェイスを表示します。ユーザーがスキャンした後、WeChat サーバーはスキャン結果を設定された URL にプッシュします。開発者による。
  1. カスタム メニューの制限
    WeChat 公開アカウントでは、カスタム メニューにいくつかの制限があります。開発者は次のルールに従う必要があります:
  • 第 1 レベルのメニューは最大 3 つ設定でき、各第 1 レベルのメニューには最大 5 つの第 2 レベルのメニューを設定できます。
  • 第 1 レベルのメニューには最大 4 文字の中国語を含めることができ、第 2 レベルのメニューには最大 7 文字の中国語を含めることができます。
  • メニュー名を繰り返すことはできません。
  • 第 1 レベルのメニューと第 2 レベルのメニューをまったく同じにすることはできません。

カスタム メニューの関連概念と制限を理解した後、PHP を使用してカスタム メニューを開発し始めました。

  1. 準備作業
    まず、WeChat 公式アカウントの AppID と AppSecret が必要です。 WeChat パブリック プラットフォームでアカウントを申請してパブリック アカウントを作成し、デベロッパー センターで AppID と AppSecret を取得できます。
  2. access_token の取得
    メニューの作成、クエリ、削除を行う前に、次の操作のために access_token を取得する必要があります。 access_token は、WeChat インターフェイスを呼び出すための唯一の資格情報です。

access_token を取得するためのインターフェースアドレスは

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

このうち、APPID と APPSECRET は独自の AppID と AppSecret に置き換える必要があります。

PHP の cURL ライブラリを使用して、HTTP リクエストを送信し、返された JSON データを取得できます。具体的なコードは次のとおりです。

function getAccessToken($appID, $appSecret) {
    $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appID . '&secret=' . $appSecret;
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);
    curl_close($ch);
    
    $result = json_decode($data, true);
    if(isset($result['access_token'])){
        return $result['access_token'];
    }else{
        return false;
    }
}

$appID = 'your_appid';
$appSecret = 'your_appsecret';
$accessToken = getAccessToken($appID, $appSecret);
if(!$accessToken){
    // 获取access_token失败
    // 处理错误逻辑
}
  1. カスタム メニューの作成
    access_token を取得した後、公式インターフェイスを使用してカスタム メニューを作成できます。インターフェイス アドレスは次のとおりです。

    https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

    このうち、ACCESS_TOKEN は、前の手順で取得した access_token です。

カスタム メニューを作成するための JSON データ形式は次のとおりです。

{
    "button": [
        {
            "name": "菜单1",
            "sub_button": [
                {
                    "type": "click",
                    "name": "点击事件",
                    "key": "click_event"
                },
                {
                    "type": "view",
                    "name": "跳转URL",
                    "url": "http://www.example.com"
                }
            ]
        },
        {
            "name": "菜单2",
            "sub_button": [
                {
                    "type": "scancode_push",
                    "name": "扫码推事件",
                    "key": "scan_event"
                }
            ]
        },
        {
            "type": "view",
            "name": "跳转URL",
            "url": "http://www.example.com"
        }
    ]
}

PHP を使用してカスタム メニューを作成するリクエストを送信する例は、次のとおりです。

function createMenu($accessToken, $menuData) {
    $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token=' . $accessToken;
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $menuData);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);
    curl_close($ch);
    
    $result = json_decode($data, true);
    if(isset($result['errcode']) && $result['errcode'] == 0){
        return true;
    }else{
        return false;
    }
}

$menuData = '{
    "button": [
        {
            "name": "菜单1",
            "sub_button": [
                {
                    "type": "click",
                    "name": "点击事件",
                    "key": "click_event"
                },
                {
                    "type": "view",
                    "name": "跳转URL",
                    "url": "http://www.example.com"
                }
            ]
        },
        {
            "name": "菜单2",
            "sub_button": [
                {
                    "type": "scancode_push",
                    "name": "扫码推事件",
                    "key": "scan_event"
                }
            ]
        },
        {
            "type": "view",
            "name": "跳转URL",
            "url": "http://www.example.com"
        }
    ]
}';

if(createMenu($accessToken, $menuData)){
    // 创建自定义菜单成功
    // 处理成功逻辑
}else{
    // 创建自定义菜单失败
    // 处理失败逻辑
}

上記は、PHP を使用して WeChat 公式アカウントのカスタム メニューを開発するための完全な手順とサンプル コードです。上記の手順により、WeChat 公式アカウントにカスタム メニューを簡単に作成し、必要に応じて対応するジャンプやイベント処理を実行できます。この記事が皆さんのお役に立てば幸いです!

以上がPHP を使用して WeChat 公開アカウントでカスタム メニューを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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