>  기사  >  백엔드 개발  >  PHP를 사용하여 WeChat 공개 계정에서 사용자 정의 메뉴를 개발하는 방법

PHP를 사용하여 WeChat 공개 계정에서 사용자 정의 메뉴를 개발하는 방법

PHPz
PHPz원래의
2023-10-27 09:21:491209검색

PHP를 사용하여 WeChat 공개 계정에서 사용자 정의 메뉴를 개발하는 방법

PHP를 사용하여 WeChat 공식 계정에서 사용자 정의 메뉴를 개발하는 방법

WeChat 공식 계정은 매우 중요한 매체이며 많은 기업과 개인이 WeChat 공식 계정을 홍보하고 소통하기로 선택합니다. 사용자 정의 메뉴는 WeChat 공식 계정의 필수적인 부분이며 사용자 경험과 탐색 기능을 개선하는 데 도움이 될 수 있습니다. 이 기사에서는 PHP를 사용하여 사용자 정의 메뉴를 개발하는 방법을 소개하고 특정 코드 예제를 제공합니다.

먼저 위챗 공식계정 커스텀 메뉴의 관련 개념과 한계를 이해해야 합니다.

  1. 맞춤 메뉴 유형
    WeChat 공개 계정에는 푸시 이벤트 클릭, URL 점프, 스캔 코드 푸시 이벤트 등 세 가지 주요 유형의 맞춤 메뉴가 있습니다.
  • 클릭 푸시 이벤트: 사용자가 메뉴를 클릭하면 WeChat 서버는 개발자가 구성한 URL로 메시지를 푸시하고 개발자는 이 URL에서 사용자의 요청을 처리할 수 있습니다.
  • Jump URL: 사용자가 메뉴를 클릭하면 개발자가 지정한 URL 페이지로 바로 이동합니다.
  • 스캔 코드 푸시 이벤트: 사용자가 메뉴를 클릭하면 WeChat 클라이언트는 사용자가 QR 코드를 스캔하기 위한 인터페이스를 불러옵니다. WeChat 서버는 스캔 결과를 개발자가 구성한 URL로 푸시합니다.
  1. 맞춤 메뉴 제한
    WeChat 공개 계정에서는 맞춤 메뉴에 몇 가지 제한 사항이 있습니다. 개발자는 다음 규칙을 준수해야 합니다.
  • 최대 3개의 1단계 메뉴를 설정할 수 있으며, 각 메뉴는 레벨 메뉴에는 최대 5개의 보조 메뉴를 설정할 수 있습니다.
  • 1단계 메뉴에는 최대 4개의 한자가 포함될 수 있으며, 2단계 메뉴에는 최대 7개의 한자가 포함될 수 있습니다.
  • 메뉴 이름은 중복될 수 없습니다.
  • 1단계 메뉴와 2단계 메뉴는 완전히 동일할 수 없습니다.

사용자 정의 메뉴의 관련 개념과 한계를 이해한 다음, PHP를 사용하여 사용자 정의 메뉴를 개발하기 시작합니다.

  1. 준비
    먼저 위챗 공식 계정의 AppID와 AppSecret이 필요합니다. WeChat 공개 플랫폼에서 계정을 신청하고 공개 계정을 만든 후 개발자 센터에서 AppID와 AppSecret을 얻을 수 있습니다.
  2. Get 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.