Heim  >  Artikel  >  Backend-Entwicklung  >  So entwickeln Sie mit PHP benutzerdefinierte Menüs für öffentliche WeChat-Konten

So entwickeln Sie mit PHP benutzerdefinierte Menüs für öffentliche WeChat-Konten

PHPz
PHPzOriginal
2023-10-27 09:21:491216Durchsuche

So entwickeln Sie mit PHP benutzerdefinierte Menüs für öffentliche WeChat-Konten

So verwenden Sie PHP, um benutzerdefinierte Menüs auf offiziellen WeChat-Konten zu entwickeln

Offizielle WeChat-Konten sind ein sehr wichtiges Medium, und viele Unternehmen und Einzelpersonen entscheiden sich dafür, auf offiziellen WeChat-Konten Werbung zu machen und zu kommunizieren. Das benutzerdefinierte Menü ist ein integraler Bestandteil des offiziellen WeChat-Kontos und kann dazu beitragen, das Benutzererlebnis und die Navigationsfunktionen zu verbessern. In diesem Artikel wird erläutert, wie Sie mit PHP benutzerdefinierte Menüs entwickeln, und es werden spezifische Codebeispiele bereitgestellt.

Zunächst müssen wir die zugehörigen Konzepte und Einschränkungen des benutzerdefinierten Menüs des offiziellen WeChat-Kontos verstehen.

  1. Arten von benutzerdefinierten Menüs
    In öffentlichen WeChat-Konten gibt es drei Haupttypen von benutzerdefinierten Menüs: Klick-Push-Ereignisse, Sprung-URLs und Scan-Code-Push-Ereignisse.
  • Click-Push-Ereignis: Nachdem der Benutzer auf das Menü geklickt hat, sendet der WeChat-Server eine Nachricht an die vom Entwickler konfigurierte URL, und der Entwickler kann die Anfrage des Benutzers in dieser URL bearbeiten.
  • Sprung-URL: Nachdem der Benutzer auf das Menü geklickt hat, wird direkt zur vom Entwickler angegebenen URL-Seite gesprungen.
  • Scan-Code-Push-Ereignis: Nachdem der Benutzer auf das Menü geklickt hat, ruft der WeChat-Client die Schnittstelle zum Scannen des QR-Codes auf. Nachdem der Benutzer gescannt hat, überträgt der WeChat-Server die Scan-Ergebnisse an die vom Entwickler konfigurierte URL.
  1. Einschränkungen von benutzerdefinierten Menüs
    In öffentlichen WeChat-Konten gibt es einige Einschränkungen für benutzerdefinierte Menüs. Entwickler müssen die folgenden Regeln einhalten:
  • Es können bis zu 3 Menüs der ersten Ebene festgelegt werden, und jedes erste- Das Ebenenmenü kann bis zu 5 sekundäre Menüs einrichten.
  • Das Menü der ersten Ebene kann bis zu 4 chinesische Schriftzeichen enthalten, und das Menü der zweiten Ebene kann bis zu 7 chinesische Schriftzeichen enthalten.
  • Der Menüname kann nicht wiederholt werden.
  • Das Menü der ersten Ebene und das Menü der zweiten Ebene können nicht genau gleich sein.

Nachdem wir die damit verbundenen Konzepte und Einschränkungen benutzerdefinierter Menüs verstanden haben, beginnen wir als Nächstes mit der Verwendung von PHP zur Entwicklung benutzerdefinierter Menüs.

  1. Vorbereitung
    Zunächst benötigen wir die AppID und das AppSecret eines offiziellen WeChat-Kontos. Sie können ein Konto auf der öffentlichen WeChat-Plattform beantragen, ein öffentliches Konto erstellen und dann die AppID und das AppSecret im Developer Center abrufen.
  2. Access_token abrufen
    Bevor wir Menüs erstellen, abfragen und löschen, müssen wir access_token für die nächsten Vorgänge abrufen. access_token ist der einzige Berechtigungsnachweis für den Aufruf der WeChat-Schnittstelle.

Die Schnittstellenadresse zum Erhalten von access_token lautet:

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

Unter diesen müssen APPID und APPSECRET durch Ihre eigene AppID und AppSecret ersetzt werden.

Wir können die cURL-Bibliothek von PHP verwenden, um HTTP-Anfragen zu senden und die zurückgegebenen JSON-Daten abzurufen. Der spezifische Code lautet wie folgt:

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. Benutzerdefiniertes Menü erstellen
    Nach Erhalt des access_token können wir über die offizielle Schnittstelle ein benutzerdefiniertes Menü erstellen. Die Schnittstellenadresse lautet:

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

    Dabei ist ACCESS_TOKEN das access_token, das wir im vorherigen Schritt erhalten haben.

Das JSON-Datenformat zum Erstellen eines benutzerdefinierten Menüs lautet wie folgt:

{
    "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"
        }
    ]
}

Ein Beispiel für die Verwendung von PHP zum Senden einer Anfrage zum Erstellen eines benutzerdefinierten Menüs lautet wie folgt:

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{
    // 创建自定义菜单失败
    // 处理失败逻辑
}

Oben sind die vollständigen Schritte und der Beispielcode aufgeführt für die Verwendung von PHP zur Entwicklung eines benutzerdefinierten Menüs für öffentliche WeChat-Konten. Mit den oben genannten Schritten können wir ganz einfach ein benutzerdefiniertes Menü im offiziellen WeChat-Konto erstellen und bei Bedarf entsprechende Sprünge und Ereignisverarbeitungen durchführen. Ich hoffe, dieser Artikel ist für alle hilfreich!

Das obige ist der detaillierte Inhalt vonSo entwickeln Sie mit PHP benutzerdefinierte Menüs für öffentliche WeChat-Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn