微信公眾號中個人化選單的開發實例

一个新手
發布: 2017-09-07 09:32:13
原創
4174 人瀏覽過

微信公眾號中個人化選單的開發實例

個人化選單讓公眾號的不同使用者群體看到不一樣的自訂選單。此介面開放給已認證訂閱號和已認證服務號,個人化選單要求使用者的微信用戶端版本在iPhone6.2.2,Android 6.2.4以上,暫時不支援其他版本微信,另外定義個人化選單前必須先定義預設選單。

開發者可以透過以下條件來設定使用者看到的選單:

  1. #使用者標籤(開發者的業務需求可以藉助使用者標籤來完成)

  2. 性別

  3. #手機作業系統


  4. ##地區(使用者在微信客戶端設定的地區)

  5. 語言(使用者在微信客戶端設定的語言)


個人化選單比對規則說明:



個人化選單的更新是會被覆寫的。
例如公眾號先後發布了預設選單,個人化選單1,個人化選單2,個人化選單3。那麼當使用者進入公眾號頁面時,將從個人化選單3開始匹配,如果個人化選單3匹配成功,則直接返回個人化選單3,否則繼續嘗試匹配個人化選單2,直到成功配對到一個選單。

依據上述符合規則,為了避免選單生效時間的混淆,決定不予提供個人化選單編輯API,開發者需要更新選單時,需將完整配置重新發布一輪。

本例的專案架構如下,除了上一章的檔案之外,還增加了三個處理個人化選單的檔案。


addconditional_menu.php:建立個人化選單


trymatch.php:測試匹配個人化選單


#delconditional_menu.php:刪除個人化選單

1、建立個人化選單

建立個人化選單的介面是https://api.weixin.qq.com /cgi-bin/menu/addconditional?access_token=ACCESS_TOKEN,以post方式傳送選單字串。

addconditional_menu.php

<?php
require_once(&#39;./Utils.php&#39;);
//个性化菜单字符串
$menujson = &#39;{
	"button":[
 	{
    	"type":"click",
    	"name":"单击",
     	"key":"V1001_TODAY_MUSIC"
	},
	{
		"name":"搜素",
		"sub_button":[
            {
                "type":"view",
                "name":"百度",
                "url":"http://www.baidu.com/"
            }
        ]
 }],
 "matchrule":{
  "sex":"1"
  }
}&#39;;
$url = "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=".Utils::get_access_token();
//创建个性化菜单
$result = Utils::https_request($url, $menujson);
//返回返回menuid表示成功
echo $result;
登入後複製

傳回結果如下:

##查看選單發現從預設選單變成了個人化選單,如下所示

這裡只設定了性別過濾,1表示男性,有關其他的條件設定請參考個人化選單介面。

2、測試個人化選單比對結果

測試介面是https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token=ACCESS_TOKEN,需要post " user_id"過去。

trymatch.php

<?php
    @header(&#39;Content-type: text/plain;charset=UTF-8&#39;);
    require_once(&#39;./Utils.php&#39;);
    $url = "https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token=".Utils::get_access_token();
    //user_id可以是粉丝的OpenID,也可以是粉丝的微信号
    $userID = &#39;{"user_id":"o4WmZ0h-4huBUVQUczx2ezaxIL9c"}&#39;;
    $result = Utils::https_request($url, $userID);
    echo $result;
?>
登入後複製

傳回結果如下:


#3、刪除個人化選單

刪除個人化選單介面是https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=ACCESS_TOKEN,需要post「menuid」過去。

delconditional_menu.php

<?php
    @header(&#39;Content-type: text/plain;charset=UTF-8&#39;);
    require_once(&#39;./Utils.php&#39;);
    $url = "https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=".Utils::get_access_token();
    //menuid,个性化菜单的menuid
    $menuID = &#39;{"menuid":414784577}&#39;;
    $result = Utils::https_request($url, $menuID);
    echo $result;
?>
登入後複製
返回結果如下表示成功:

##4、查詢個人化選單

#使用普通自訂選單查詢介面可以取得預設選單和全部個人化選單信息,請參考上一章。


查詢之後結果如下:


#這裡的menuid和上面的不一樣是因為我刪除了之前的個性化選單,然後重新初始化了一次。


5、刪除所有選單

使用普通自訂選單刪除介面可以刪除所有自訂選單(包括預設選單和全部個人化選單)

#

以上是微信公眾號中個人化選單的開發實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!