>  기사  >  php教程  >  PHP WeChat 개발에서 사용자 정의 메뉴 구현

PHP WeChat 개발에서 사용자 정의 메뉴 구현

高洛峰
高洛峰원래의
2016-12-12 10:01:151083검색

편집 모드와 개발 모드가 충돌합니다. 따라서 WeChat 공식 계정의 개발 모드를 활성화한 후에는 해당 메뉴를 볼 수 없습니다. 하지만 이제 개인 구독 계정은 사용자 정의 메뉴와 같은 고급 개발자 모드를 사용할 수 없지만 테스트 계정을 통해 테스트한 후 코드를 서비스 계정으로 이동할 수 있습니다.

사용자 정의 유형에는 다음이 포함됩니다.

1. 클릭: 클릭 푸시 이벤트
• 사용자가 클릭 유형 버튼을 클릭하면 WeChat 서버가 다음 유형의 메시지를 푸시합니다. 메시지 인터페이스를 통한 이벤트 구조는 개발자에게 제공되며(메시지 인터페이스 가이드 참조), 개발자가 버튼에 키 값을 입력하면 개발자는 맞춤형 키 값을 통해 사용자와 상호작용할 수 있습니다.

2. view : Jump URL

• 사용자가 view type 버튼을 클릭하면 개발자가 버튼에 입력한 웹 페이지 URL이 WeChat 클라이언트에서 열립니다. 이는 웹과 결합될 수 있습니다. 사용자의 기본 정보를 얻기 위한 페이지 인증 인터페이스입니다.

3. scancode_push: 스캔 코드 푸시 이벤트

• 사용자가 버튼을 클릭하면 WeChat 클라이언트가 스캔 도구를 실행하고 스캔 결과를 표시합니다(URL인 경우 입력) URL), 코드 스캔 결과는 메시지를 보낼 수 있는 개발자에게 전송됩니다.

4. scancode_waitmsg: 코드를 스캔하여 이벤트를 푸시하고 "메시지 수신" 프롬프트 상자를 팝업합니다.

• 사용자가 버튼을 클릭하면 WeChat 클라이언트가 스캔 도구를 실행합니다. 코드 스캐닝 작업 완료 마지막으로 코드 스캐닝 결과가 개발자에게 전송되고 스캐닝 도구는 보관됩니다. 그런 다음 "메시지 수신" 프롬프트 상자가 팝업되고 개발자로부터 메시지가 수신될 수 있습니다.

사용자 정의 유형에는 다음이 포함됩니다.


5. pic_sysphoto: 시스템이 팝업되어 사진을 찍고 사진을 보낸 후 사용자가 버튼을 클릭하면 WeChat 클라이언트가 실행됩니다. 사진 촬영 작업을 완료하기 위해 시스템 카메라를 호출합니다. 이후 촬영된 사진

이 개발자에게 전송되고, 이벤트가 개발자에게 푸시됩니다. 동시에 시스템 카메라는 삭제됩니다. 그러면 개발자로부터 메시지가 수신될 수 있습니다.

6. pic_photo_or_album: 사용자가 사진을 찍거나 앨범에 사진을 보내기 위해 버튼을 클릭하면 WeChat 클라이언트는 사용자가 "사진 찍기" 또는 "사진 찍기"를 선택할 수 있는 선택기를 팝업으로 표시합니다. "휴대폰 앨범에서 선택". 사용자가 선택한 후에는 다른 두 가지 프로세스를 거치게 됩니다.


7. pic_weixin: WeChat 사진 앨범 발신자가 팝업되고 사용자가 버튼을 클릭하면 WeChat 클라이언트가 선택 작업을 완료한 후 선택한 사진을 불러옵니다.

을 개발자 서버로 보내고 이벤트를 개발자에게 푸시하는 동시에 앨범을 닫고 나중에 개발자로부터 메시지를 받을 수도 있습니다.

코드를 서버에 업로드하고 공식 계정을 다시 팔로우하면 개발 모드에서 사용자 정의 메뉴를 볼 수 있습니다

$appid = '微信公众号的appid'; 
$appsecret = '微信公众号的appsecret'; 
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret=$appsecret"; 
$output = https_request($url); 
$jsoninfo = json_decode($output,true); 
$access_token = $jsoninfo["access_token"]; 
$jsonmenu = '{ 
  "button":[ 
  { 
   "name":"学校系统", 
   "sub_button":[ 
    { 
     "type":"click", 
     "name":"课程表", 
     "key":"课程表"
    }, 
    { 
     "type":"click", 
     "name":"个人信息", 
     "key":"个人信息"
    }, 
    { 
     "type":"click", 
     "name":"平时成绩", 
     "key":"平时成绩"
    }, 
    { 
     "type":"click", 
     "name":"奖惩记录", 
     "key":"奖惩记录"
    } 
   ] 
  }, 
  { 
   "name":"技术分享", 
   "sub_button":[ 
    { 
     "type":"click", 
     "name":"移动WEB开发", 
     "key":"移动WEB开发"
    }, 
    { 
     "type":"click", 
     "name":"J2EE框架", 
     "key":"J2EE框架"
    }, 
    { 
     "type":"click", 
     "name":"Android开发", 
     "key":"Android开发"
    }, 
    { 
     "type":"click", 
     "name":"PHP框架", 
     "key":"PHP框架"
    } 
   ] 
  },{ 
   "name":"技术支持", 
   "sub_button":[ 
    { 
     "type":"click", 
     "name":"在线客服", 
     "key":"在线客服"
    }, 
    { 
     "type":"click", 
     "name":"技术分享", 
     "key":"技术分享"
    }, 
    { 
     "type":"view", 
     "name":"天气预报", 
     "url":"http://m.hao123.com/a/tianqi"
    } 
   ] 
  } 
  
 ] 
 }'; 
  
  
 //创建菜单实现 
 $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$access_token; 
 $result = https_request($url,$jsonmenu); 
 var_dump($result); 
 function https_request($url,$data = null){ 
  $curl = curl_init(); 
  curl_setopt($curl,CURLOPT_URL,$url); 
  curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0); 
  curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0); 
  if(!empty($data)){ 
   curl_setopt($curl,CURLOPT_POST,1); 
   curl_setopt($curl,CURLOPT_POSTFIELDS,$data); 
  } 
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); 
  $output = curl_exec($curl); 
  curl_close($curl); 
  return $output; 
 }

PHP WeChat 개발에서 사용자 정의 메뉴 구현

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