下面這個類我對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();
}
}