個性化菜單介面
個人化選單接口
為了幫助公眾號實現靈活的業務運營,微信公眾平台新增了個性化選單接口,開發者可以透過該接口,讓公眾號的不同用戶群看到不一樣的自訂選單。此介面開放給已認證訂閱號碼和已認證服務號碼。
開發者可以透過以下條件來設定使用者看到的選單:
1、用户标签(开发者的业务需求可以借助用户标签来完成) 2、性别 3、手机操作系统 4、地区(用户在微信客户端设置的地区) 5、语言(用户在微信客户端设置的语言)
#個人化選單介面說明:
1、个性化菜单要求用户的微信客户端版本在iPhone6.2.2,Android 6.2.4以上,暂时不支持其他版本微信 2、菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户端的菜单。测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果 3、普通公众号的个性化菜单的新增接口每日限制次数为2000次,删除接口也是2000次,测试个性化菜单匹配结果接口为20000次 4、出于安全考虑,一个公众号的所有个性化菜单,最多只能设置为跳转到3个域名下的链接 5、创建个性化菜单之前必须先创建默认菜单(默认菜单是指使用普通自定义菜单创建接口创建的菜单)。如果删除默认菜单,个性化菜单也会全部删除 6、个性化菜单接口支持用户标签,请开发者注意,当用户身上的标签超过1个时,以最后打上的标签为匹配
個性化選單比對規則說明:
个性化菜单的更新是会被覆盖的。 例如公众号先后发布了默认菜单,个性化菜单1,个性化菜单2,个性化菜单3。那么当用户进入公众号页面时,将从个性化菜单3开始匹配,如果个性化菜单3匹配成功,则直接返回个性化菜单3,否则继续尝试匹配个性化菜单2,直到成功匹配到一个菜单。 根据上述匹配规则,为了避免菜单生效时间的混淆,决定不予提供个性化菜单编辑API,开发者需要更新菜单时,需将完整配置重新发布一轮。
#建立個人化選單
##http請求方式:POST(請使用https協定)https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=ACCESS_TOKEN請求範例
{ "button":[ { "type":"click", "name":"今日歌曲", "key":"V1001_TODAY_MUSIC" }, { "name":"菜单", "sub_button":[ { "type":"view", "name":"搜索", "url":"http://www.soso.com/" }, { "type":"view", "name":"视频", "url":"http://v.qq.com/" }, { "type":"click", "name":"赞一下我们", "key":"V1001_GOOD" }] }], "matchrule":{ "tag_id":"2", "sex":"1", "country":"中国", "province":"广东", "city":"广州", "client_platform_type":"2", "language":"zh_CN" } }參數說明
參數 | 是否必須 | 說明 |
---|---|---|
#button | ##是一級選單數組,個數應為1~3個 | |
否 | 二級選單數組,個數應為1~5個 | |
是 | 選單的回應動作類型 | |
是 | 選單標題,不超過16個字節,子選單不超過40個位元組 | |
click等點擊類型必須 | 選單KEY值,用於訊息介面推送,不超過128位元組 | |
##view類型必須 | 網頁鏈接,使用者點擊選單可開啟鏈接,不超過1024位元組 | |
media_id類型和view_limited類型必須 | 呼叫新增永久素材介面傳回的合法media_id | |
是 | 選單比對規則 | |
否 | 使用者標籤的id,可透過使用者標籤管理介面取得 | |
#否 | 性別:男(1)女(2),不填則不做配對 | |
否 | 客戶端版本,目前只具體到系統型號:IOS(1), Android(2),Others(3),不填則不做匹配 | |
##國家信息,是用戶在微信中設定的地區,具體請參考地區資訊表 | ||
#province | 否 | 省信息,是用戶在微信中設定的地區,具體請參考地區資訊表 |
language | 否 | 語言訊息,是使用者在微信中設定的語言,請參考語言表: 1、簡體中文"zh_CN" 2、繁體中文TW "zh_TW" 3、繁體中文HK "zh_HK" 4、英文"en" 5、印尼"id" 6、馬來"ms" 7、西班牙"es" 8、韓國"ko" 9、義大利"it " 10、日本"ja" 11、波蘭"pl" 12、葡萄牙"pt" 13、俄國"ru" 14、泰文"th" 15、越南"vi" 16、阿拉伯語"ar" 17、北印度"hi " 18、希伯來"he" 19、土耳其"tr" 20、德語"de" 21、法語"fr" |
matchrule共六個字段,均可為空,但不能全部為空,至少要有一個匹配資訊是不為空的。 country、province、city組成地區訊息,將依照country、province、city的順序進行驗證,要符合地區資訊表的內容。地區資訊從大到小驗證,小的可以不填,即若填寫了省份信息,則國家資訊也必填並且匹配,城市資訊可以不填。例如 「中國 廣東省 廣州市」、「中國 廣東省」都是合法的地域訊息,而「中國 廣州市」則不合法,因為填寫了城市資訊但沒有填寫省份資訊。地區資訊表請點選下載。
傳回結果
正確時的回傳JSON封包如下,錯誤時的回傳碼請見介面回傳碼說明。
{ "menuid":"208379533" }
刪除個人化選單
#http要求方式:POST(請使用https協定)
https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=ACCESS_TOKEN
請求範例
{ "menuid":"208379533" }
menuid為選單id,可以透過自訂選單查詢介面取得。
正確時的回傳JSON封包如下,錯誤時的回傳碼請參閱介面回傳碼說明。 :
{"errcode":0,"errmsg":"ok"}
測試個人化選單比對結果
#http請求方式:POST(請使用https協定)
https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token=ACCESS_TOKEN
請求範例
{ "user_id":"weixin" }
user_id可以是粉絲的OpenID,也可以是粉絲的微訊號。
傳回結果 此介面將傳回功能表配置,範例如下:
{ "button": [ { "type": "view", "name": "tx", "url": "http://www.qq.com/", "sub_button": [ ] }, { "type": "view", "name": "tx", "url": "http://www.qq.com/", "sub_button": [ ] }, { "type": "view", "name": "tx", "url": "http://www.qq.com/", "sub_button": [ ] } ] }
錯誤時的回傳碼請參閱介面回傳碼說明。
查詢個人化選單
使用普通自訂選單查詢介面可以取得預設選單和全部個人化選單信息,請見自訂選單查詢介面的說明。
刪除所有選單
使用普通自訂選單刪除介面可以刪除所有自訂選單(包括預設選單和全部個人化選單) ,請參閱自訂選單刪除介面的說明。