【fastweixin框架教程7】微信企業號自定義菜單接口開發

  下面這個類我對fastweixin 框架的簡單封裝調用,大家可以參考,如果需要QYAPIConfigExt和MainServernSupport,請參考本教程以前幾篇文章


   應用可以在會話界面底部設置自定義菜單,菜單項可按需設定,並可爲其設置響應動作。用戶可以通過點擊菜單項,收到你設定的消息。企業號支持自定義菜單調起掃一掃、發圖片、發地理位置等能力。

  菜單分爲兩類,VIEW和Click,具體可以參考《柳峯微信公衆平臺開發教程》

  本文目標:

  1、實現菜單的刪除和增加

  2、實現微信OAuth驗證的對接。

  說明:微信OAuth有兩種實現一種就是我註釋的那段用StringBuilder 拼URL 或者直接調用原框架的OauthAPI 輔助生成URL

  

package com.nsjs;

import java.awt.List;
import java.util.ArrayList;

import com.fastwixinextend.QYAPIConfigExt;

import com.github.sd4324530.fastweixin.api.OauthAPI;
import com.github.sd4324530.fastweixin.api.config.ApiConfig;
import com.github.sd4324530.fastweixin.api.entity.Menu;
import com.github.sd4324530.fastweixin.api.enums.OauthScope;
import com.github.sd4324530.fastweixin.company.api.QYMenuAPI;
import com.github.sd4324530.fastweixin.company.api.entity.QYMenu;
import com.github.sd4324530.fastweixin.company.api.entity.QYMenuButton;
import com.github.sd4324530.fastweixin.company.api.enums.QYMenuType;
import com.github.sd4324530.fastweixin.company.api.enums.QYResultType;
import com.github.sd4324530.fastweixin.company.api.response.GetQYMenuResponse;

public class MenuManager {

    public QYAPIConfigExt config = null;

    public QYAPIConfigExt initConfig() {
        if (config == null) {
            config = new QYAPIConfigExt(MainServernSupport.getCropId(), MainServernSupport.getAPPSecret(),
                    "http://blog.csdn.net/luozhuang", System.currentTimeMillis());
        }
        return config;
    }

    public QYAPIConfigExt initConfig(String CropId, String APPSecret, String AccessToken, long AccessTokenTime) {
        QYAPIConfigExt config;
        config = new QYAPIConfigExt(CropId, APPSecret, AccessToken, AccessTokenTime);
        return config;
    }

    public void listMenu() {
        QYMenuAPI menuAPI = new QYMenuAPI(initConfig());
        GetQYMenuResponse response = menuAPI.list(MainServernSupport.getAgentID());
        QYMenu menu = response.getMenu();

    }

    public void deleteMenu() {
        QYMenuAPI menuAPI = new QYMenuAPI(initConfig());
        QYResultType resultType = menuAPI.delete(MainServernSupport.getAgentID());

    }

    /**
     * 定義菜單結構
     *
     * @return
     */
    private String createMenu() {

        // StringBuilder url = new StringBuilder();
        // url.append("https://open.weixin.qq.com/connect/oauth2/authorize?");
        // url.append("appid=" + MainServernSupport.getCropId());
        // url.append("&redirect_uri=").append("http://blog.csdn.net/luozhuang");
        // url.append("&response_type=").append("code");
        // url.append("&scope").append("snsapi_base");
        // url.append("&state=").append(MainServernSupport.getCropId());
        // url.append("#wechat_redirect");
        OauthAPI oauthAPI = new OauthAPI(config);
        String pageUrl = oauthAPI.getOauthPageUrl("http://blog.csdn.net/luozhuang",
                OauthScope.SNSAPI_BASE, MainServernSupport.getToken());

        QYMenuButton btn11 = new QYMenuButton();
        btn11.setName("項目1");
        btn11.setType(QYMenuType.VIEW);

        btn11.setUrl(pageUrl);
        btn11.setKey("項目1");

        pageUrl = oauthAPI.getOauthPageUrl("http://blog.csdn.net/luozhuang",
                OauthScope.SNSAPI_BASE, MainServernSupport.getToken());
        QYMenuButton btn12 = new QYMenuButton();
        btn12.setName("項目2");
        btn12.setType(QYMenuType.VIEW);
        btn12.setUrl(pageUrl);
        btn12.setKey("項目2");

        pageUrl = oauthAPI.getOauthPageUrl("http://blog.csdn.net/luozhuang",
                OauthScope.SNSAPI_BASE, MainServernSupport.getToken());
        QYMenuButton btn13 = new QYMenuButton();
        btn13.setName("項目3");
        btn13.setType(QYMenuType.VIEW);
        btn13.setUrl(pageUrl);
        btn13.setKey("項目3");

        QYMenuButton btn21 = new QYMenuButton();
        btn21.setName("項目4");
        btn21.setType(QYMenuType.CLICK);
        btn21.setKey("項目4");

        QYMenuButton btn22 = new QYMenuButton();
        btn22.setName("項目5");
        btn22.setType(QYMenuType.CLICK);
        btn22.setKey("項目5");

        QYMenuButton btn23 = new QYMenuButton();
        btn23.setName("項目6");
        btn23.setType(QYMenuType.CLICK);
        btn23.setKey("項目6");

        QYMenuButton btn31 = new QYMenuButton();
        btn31.setName("報表");
        btn31.setType(QYMenuType.CLICK);
        btn31.setKey("報表");

        QYMenuButton btn32 = new QYMenuButton();
        btn32.setName("項目8");
        btn32.setType(QYMenuType.CLICK);
        btn32.setKey("項目8");

        QYMenuButton btn33 = new QYMenuButton();
        btn33.setName("項目9");
        btn33.setType(QYMenuType.CLICK);
        btn33.setKey("項目9");

        QYMenuButton mainBtn1 = new QYMenuButton();
        mainBtn1.setName("項目11");
        ArrayList<QYMenuButton> ListButton = new ArrayList<QYMenuButton>();
        ListButton.add(btn11);
        ListButton.add(btn12);
        ListButton.add(btn13);
        mainBtn1.setSubButton(ListButton);

        QYMenuButton mainBtn2 = new QYMenuButton();
        mainBtn2.setName("項目22");

        ListButton = new ArrayList<QYMenuButton>();
        ListButton.add(btn21);
        ListButton.add(btn22);
        ListButton.add(btn23);
        mainBtn2.setSubButton(ListButton);

        QYMenuButton mainBtn3 = new QYMenuButton();
        mainBtn3.setName("項目33");
        mainBtn3.setType(QYMenuType.VIEW);
        pageUrl = oauthAPI.getOauthPageUrl("http://blog.csdn.net/luozhuang",
                OauthScope.SNSAPI_BASE, MainServernSupport.getToken());
        mainBtn3.setUrl(pageUrl);
        ListButton = new ArrayList<QYMenuButton>();
        ListButton.add(btn31);
         ListButton.add(btn32);
        ListButton.add(btn33);
        mainBtn3.setSubButton(ListButton);

        QYMenu menu = new QYMenu();

        ArrayList<QYMenuButton> MenuButtonList = new ArrayList<QYMenuButton>();
        MenuButtonList.add(mainBtn1);
        MenuButtonList.add(mainBtn2);
        MenuButtonList.add(mainBtn3);

        menu.setButton(MenuButtonList);
        QYMenuAPI menuAPI = new QYMenuAPI(initConfig());
        QYResultType resultType = menuAPI.create(menu, MainServernSupport.getAgentID());
        return resultType.getDescription();
    }

    public static void main(String[] args) {
        MenuManager menuManager = new MenuManager();
        menuManager.deleteMenu();
        menuManager.createMenu();
        menuManager.listMenu();

    }

}

發佈了1023 篇原創文章 · 獲贊 273 · 訪問量 1030萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章