Copiez le code comme suit :
importer java.io.IOException ;
importer java.io.InputStream ;
importer java.io.OutputStream ;
importer java.net.HttpURLConnection ;
importer java.net.MalformedURLException ;
importer java.net.URL ;
importer org.json.JSONObject ;
classe publique MenuUtil {
/**
* Obtenez ACCESS_TOKEN
* @Titre : getAccess_token
* @Description : Obtenez ACCESS_TOKEN
* @param @return fichier de configuration
* @return Type de retour de chaîne
* @lancements
*/
Chaîne statique privée getAccess_token(){
Chaîne APPID="";
Chaîne APPSECRET="";
String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ APPID + "&secret=" +APPSECRET;
Chaîne accessToken = null ;
essayer {
URL urlGet = nouvelle URL(url);
HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();
http.setRequestMethod("GET"); //Doit être une requête get
http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");//Délai d'expiration de la connexion 30 secondes
System.setProperty("sun.net.client.defaultReadTimeout", "30000"); //Le délai de lecture est de 30 secondes.
http.connect();
InputStream est =http.getInputStream();
int size =is.available();
octet[] jsonBytes =nouvel octet[taille];
est.read(jsonBytes);
Chaîne message=new String(jsonBytes,"UTF-8");
JSONObject demoJson = new JSONObject(message);
accessToken = demoJson.getString("access_token");
System.out.println(message);
} attraper (Exception e) {
e.printStackTrace();
}
retourner le jeton d'accès ;
}
/**
*Créer un menu
* @Titre : créerMenu
* @Description : Créer un menu
* @param @retour
* @param @throws fichier de configuration IOException
* @return int type de retour
* @lancements
*/
chaîne statique publique createMenu() {
Menu chaîne = "{/"button/":[{/"type/":/"click/",/"name/":/"MENU01/",/"key/":/"1/"},{/" tapez/":/"click/",/"name/":/"Requête météo/",/"key/":/" Xi'an/"},{/"name/":/"Travail quotidien/",/"sub_button/":[{/"type/":/"click/",/"name/":/"À -do work single/",/"key/":/"01_WAITING/"},{/"type/":/"cl ick/",/"name/":/"Ordre de travail traité/",/"key/":/"02_FINISH/"},{/"type/":/"click/",/"name/" : /"Mon bon de travail/",/"key/":/"03_MYJOB/"},{/"type/": /"click/",/"name/":/"Boîte de message d'annonce/",/"key/":/"04_MESSAGEBOX/"},{/"type/":/"click/",/"name/ ":/"Connexion/",/"key/":/"05_SIGN/"}]}]}";
// Changez ici pour la structure souhaitée et remplacez-la simplement
Chaîne access_token= getAccess_token();
Action de chaîne = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+access_token;
essayer {
URL url = nouvelle URL (action) ;
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("POST");
http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");//Délai d'expiration de la connexion 30 secondes
System.setProperty("sun.net.client.defaultReadTimeout", "30000"); //Le délai de lecture est de 30 secondes.
http.connect();
OutputStream os= http.getOutputStream();
os.write(menu.getBytes("UTF-8"));//Passer les paramètres
os.flush();
os.close();
InputStream est =http.getInputStream();
int size =is.available();
octet[] jsonBytes =nouvel octet[taille];
est.read(jsonBytes);
Chaîne message=new String(jsonBytes,"UTF-8");
return "retour d'informations" + message ;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
renvoie « échec de la création du menu » ;
}
/**
* Supprimer le menu actuel
* @Titre : supprimerMenu
* @Description : Supprimer le menu actuel
* @param @return fichier de configuration
* @return Type de retour de chaîne
* @lancements
*/
chaîne statique publique deleteMenu()
{
Chaîne access_token= getAccess_token();
Action de chaîne = "https://api.weixin.qq.com/cgi-bin/menu/delete? access_token="+access_token;
essayer {
URL url = nouvelle URL (action) ;
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("GET");
http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");//Délai d'expiration de la connexion 30 secondes
System.setProperty("sun.net.client.defaultReadTimeout", "30000"); //Le délai de lecture est de 30 secondes.
http.connect();
OutputStream os= http.getOutputStream();
os.flush();
os.close();
InputStream est =http.getInputStream();
int size =is.available();
octet[] jsonBytes =nouvel octet[taille];
est.read(jsonBytes);
Chaîne message=new String(jsonBytes,"UTF-8");
return "deleteMenu renvoie un message :"+message ;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "échec de la suppression du menu" ;
}
public static void main (String[] arguments) {
System.out.println(createMenu());
}
}