亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
#介面
首頁 微信小程式 微信開發(fā) 微信公眾平臺開發(fā):個人化選單介面說明

微信公眾平臺開發(fā):個人化選單介面說明

Feb 27, 2017 pm 01:45 PM
微信大眾平臺

前不久微信上線了個人化選單接口,Senparc.Weixin SDK也已經(jīng)同步更新。

本次更新升級Senparc.Weixin.MP版本到v13.5.2,依賴Senparc.Weixin版本4.5.4。 .NET4.5(master) / .NET4.0兩個分支都已同步更新。

由於個人化選單變化比較大,所以對整個選單介面進行了目前為止最大面積的重構(gòu)(可以向下相容)。

比較先前的自訂選單,目前整個選單相關(guān)功能針對檔案結(jié)構(gòu)進行了全面的整理,:

微信公眾平臺開發(fā):個人化選單介面說明

?

#介面

  選單介面已經(jīng)全部歸入CommonAPIs/Menu目錄下,CommonApi部分類別下面再分出3個類別檔案:

?
#檔名 說明
CommonApi.Menu.Common.cs 選單公共方法


# #CommonApi.Menu.Conditional.cs

個人化選單

#CommonApi.Menu.Custom.cs

普通自訂選單

選單介面檔案

微信公眾平臺開發(fā):個人化選單介面說明  其中自訂選單介面已經(jīng)確保向下相容,以前如果有已經(jīng)開發(fā)自訂選單功能的項目,可以放心升級。

  個人化選單類別內(nèi)容如下:

/*----------------------------------------------------------------
    Copyright (C) 2015 Senparc
    
    文件名:CommonApi.Menu.Conditional
    文件功能描述:個性化自定義菜單接口
    
    
    創(chuàng)建標(biāo)識:Senparc - 20151222
        
    修改標(biāo)識:Senparc - 20151222
    修改描述:v13.5.1 添加個性化菜單接口
----------------------------------------------------------------*/

/*
    API:http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html
 */

using Senparc.Weixin.Entities;
using Senparc.Weixin.Helpers;
using Senparc.Weixin.MP.Entities;
using Senparc.Weixin.MP.Entities.Menu;

namespace Senparc.Weixin.MP.CommonAPIs
{
    public partial class CommonApi
    {
        /// <summary>
        /// 創(chuàng)建個新華菜單
        /// </summary>
        /// <param name="accessTokenOrAppId">AccessToken或AppId。當(dāng)為AppId時,如果AccessToken錯誤將自動獲取一次。當(dāng)為null時,獲取當(dāng)前注冊的第一個AppId。</param>
        /// <param name="buttonData">菜單內(nèi)容</param>
        /// <returns></returns>
        public static CreateMenuConditionalResult CreateMenuConditional(string accessTokenOrAppId, ConditionalButtonGroup buttonData, int timeOut = Config.TIME_OUT)
        {
            return ApiHandlerWapper.TryCommonApi(accessToken =>
             {
                 var urlFormat = "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token={0}";
                 var jsonSetting = new JsonSetting(true);
                 return CommonJsonSend.Send<CreateMenuConditionalResult>(accessToken, urlFormat, buttonData, timeOut: timeOut, jsonSetting: jsonSetting);

             }, accessTokenOrAppId);
        }


        #region GetMenu

        /* 使用普通自定義菜單查詢接口可以獲取默認(rèn)菜單和全部個性化菜單信息,請見自定義菜單查詢接口的說明 */

        /// <summary>
        /// 測試個性化菜單匹配結(jié)果
        /// </summary>
        /// <param name="accessTokenOrAppId"></param>
        /// <param name="userId">可以是粉絲的OpenID,也可以是粉絲的微信號。</param>
        /// <returns></returns>
        public static MenuTryMatchResult TryMatch(string accessTokenOrAppId, string userId)
        {
            return ApiHandlerWapper.TryCommonApi(accessToken =>
            {
                var url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token={0}", accessToken);

                var data = new
                {
                    user_id = userId
                };

                return CommonJsonSend.Send<MenuTryMatchResult>(accessToken, url, data, CommonJsonSendType.POST);

            }, accessTokenOrAppId);
        }

        #endregion

        /// <summary>
        /// 刪除菜單
        /// </summary>
        /// <param name="accessTokenOrAppId"></param>
        /// <param name="menuId">菜單Id</param>
        /// <returns></returns>
        public static WxJsonResult DeleteMenuConditional(string accessTokenOrAppId, string menuId)
        {
            return ApiHandlerWapper.TryCommonApi(accessToken =>
            {
                var url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token={0}", accessToken);

                var data = new
                {
                    menuId = menuId
                };

                return CommonJsonSend.Send(accessToken, url, data, CommonJsonSendType.POST);

            }, accessTokenOrAppId);

        }

        /* 使用普通自定義菜單刪除接口可以刪除所有自定義菜單(包括默認(rèn)菜單和全部個性化菜單),請見自定義菜單刪除接口的說明。 */
    }
}

  1.   選單公用方法中,GetButtonGroup()方法新增了一個參數(shù):buttonGroup,用於指定選單按鈕清單類型(屬於個人化選單還是自訂選單)。

      
  2. 實體

      有關(guān)實體類別的變更都體現(xiàn)在Entities/Menu目錄下,新建了IButtonGroupBase介面以及ButtonGroupBase基底類別。 ButtonGroup(自訂選單)和ConditionalButtonGroup(個人化選單)按鈕都繼承自ButtonGroupBase。
  3.   Entities/Menu/Buttons/目錄下的所有按鈕類型都是通用的。

    ?
回傳類型

  重新整理的回傳類型都在Entities/JsonResult/Menu/目錄下:

#?

#?

注意點


自訂選單和個人化選單的選單新增、刪除介面是不同的,使用的時候需要呼叫各自不同的介面。

#########如果使用個人化選單,MenuMatchRule中的規(guī)則必須至少填入一個。 ############對於使用了個人化選單和不使用,取得選單時傳回的資料是不同的(前者包含後者),因此SDK針對這兩種情況只提供了同一個實體:GetMenuResult(對應(yīng)的接收訊息實體為GetMenuResultFull)。有關(guān)個新華菜單的資訊(列表)可以直接從GetMenuResult.conditionalmenu讀取,如果為null或列表為空,則表示沒有個人化選單。 ############?######測試和視覺化編輯#######  原始程式碼中提供了一個簡易的視覺化編輯工具,同時可以檢視得到的選單JSON資料格式(顯示的是操作的實體轉(zhuǎn)換成的JSON,非原始JSON)。 ###############更多微信公眾平臺開發(fā):個人化選單介面說明相關(guān)文章請關(guān)注PHP中文網(wǎng)! ############
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72