


Résumé de l'expérience dans le développement de menus personnalisés pour les comptes publics WeChat
Mar 22, 2017 pm 04:10 PMCet article partage le résumé de l'expérience de développement de menus personnalisés pour les comptes publics WeChat
????開發(fā)公司的微信公眾賬號,在沒人指導(dǎo)沒有人商量的情況下沒少查資料、逛論壇。其中有多少酸甜苦辣,相信能進(jìn)來看見我的帖子的能體會的到。一年多來為了應(yīng)付公司的各種需求沒時間整理,今天我就把詳細(xì)的流程寫下來供同樣遇到問題的參考。微信公眾賬號幾種分類相信大家都有了解。?訂閱號我表示無能為力。除非你能認(rèn)證通過。廢話少說開擼。 ????? ????自定義菜單操作流程其實(shí)很簡單?,就是執(zhí)行一段Java程序?將你公眾賬號的appid和封裝的菜單發(fā)送到騰訊服務(wù)器,騰訊服務(wù)器會根據(jù)你請求參數(shù)appid和封裝的菜單添加到對應(yīng)的公眾賬號,一定要羅嗦一句,?在Java?程序中執(zhí)行一次?main?方法就可以,下次修改重新執(zhí)行,不過會有緩存,取消重新關(guān)注就可以了。 ????1?新建按鈕基類??? ????????public?class?Button?{ ????????????//按鈕名稱 ????????????private?String?name; ????????? ????????????public?String?getName()?{ ????????????????return?name; ????????????} ????????? ????????????public?void?setName(String?name)?{ ????????????????this.name?=?name; ????????????} ????????} ????2,根據(jù)業(yè)務(wù)需求新建不同的按鈕類? ????????? ????/** ?????*?view類型的按鈕??點(diǎn)擊跳轉(zhuǎn)鏈接 ?????*? ?????*/ ????public?class?ViewButton?extends?Button?{ ????????private?String?type; ????????private?String?url; ????? ????????public?String?getType()?{ ????????????return?type; ????????} ????? ????????public?void?setType(String?type)?{ ????????????this.type?=?type; ????????} ????? ????????public?String?getUrl()?{ ????????????return?url; ????????} ????? ????????public?void?setUrl(String?url)?{ ????????????this.url?=?url; ????????} ????}
/**
* Le bouton de type de clic est similaire au type d'entrée = 'bouton' Spécifiez la clé pour traiter l'entreprise correspondante en fonction de la clé capturée
*
.*/
public class ClickButton extends Button {
type de cha?ne privée?;
clé de cha?ne privée?;
cha?ne publique getType() {
type de retour?;
}
public void setType(String type) {
this.type = type;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
3 Créer un bouton qui correspond au type. Pour parler franchement, cela signifie créer un conteneur de menu principal
/**
* Bouton de type composé
*
*/
public class ComplexButton extends Button {
bouton privé[ ] sub_button;
bouton public[] getSub_button() {
return sub_button;
}
public void setSub_button( Button[] sub_button) {
this.sub_button = sub_button;
}
}
4 Créez une classe de menu pour contenir trois menus principaux
/**
*Menu
*/
public class Menu {
bouton privé[] bouton;
bouton public[] getButton() {
bouton de retour?;
}
public void setButton(Bouton Bouton[]) {
this.button = bouton;
}
}
5 Créez le jeton de classe d'informations d'identification d'appel pour préparer l'exécution de la méthode principale pour appeler l'interface Tencent
/**
*Bon d'achat
*
*/
public class Token {
//Identifiant d'accès à l'interface
private String accessToken;
// Période de validité des informations d'identification, unité?: secondes
private int expiresIn ;
public String getAccessToken() {
return accessToken;
}
public void setAccessToken(String accessToken) {
this .accessToken = accessToken;
}
public int getExpiresIn() {
return expiresIn;
}
public void setExpiresIn( int expiresIn) {
this.expiresIn = expiresIn;
}
}
Je décris uniquement la classe dans le code suivant. Voir les commentaires pour les fonctions de code spécifiques.
6 Préparez-vous à appeler l'interface Tencent
(1) Créez une classe d'outils commune
/**
*Outils généraux
*
*/
classe publique CommonUtil {
journal de l'enregistreur statique privé = LoggerFactory.getLogger(CommonUtil.class);
/**
* Obtenir les informations d'identification d'accès à l'interface
*
* Informations d'identification @param appid
* Clé @param appsecret
* @return
*/
jeton statique public getToken (String appid, String appsecret ) {
// Acquisition d'informations d'identification (GET)
String token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET ";
Token token = null;
String requestUrl = token_url.replace("APPID", appid).replace("APPSECRET", appsecret);
// Lancer une requête GET pour obtenir les informations d'identification
JSONObject jsonObject = httpsRequest(requestUrl, "GET", null);
if (null != jsonObject) {
try {
token = new Token();
token.setAccessToken(jsonObject.getString("access_token"));
token.setExpiresIn(jsonObject.getInt("expires_in") );
} catch (JSONException e) {
// échec de l'obtention du jeton
token = null;
}
>
jeton de retour?;
}
/**
* Envoyer la requête https
*
* @param requestUrl adresse de requête
* @param requestMethod méthode de requête (GET, POST)
* @param outputStr données soumises
* @return JSONObject (obtenir la valeur d'attribut de l'objet json via JSONObject.get(key))
*/
public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr ) {
JSONObject jsonObject = null;
try {
// Créez un objet SSLContext et initialisez-le avec le gestionnaire de confiance que nous avons spécifié
TrustManager[ ] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security .SecureRandom( ));
// Récupère l'objet SSLSocketFactory à partir de l'objet SSLContext ci-dessus
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL( requestUrl);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setSSLSocketFactory(ssf);
conn.setDoOutput(true);
conn.setDoInput (true);
conn.setUseCaches(false);
// Définir la méthode de requête (GET/POST)
conn.setRequestMethod(requestMethod);
// écrit des données dans le flux de sortie lorsque outputStr n'est pas nul
if (null != outputStr) {
OutputStream outputStream = conn.getOutputStream();
// Faites attention au format d'encodage
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// Lire le contenu renvoyé à partir du flux d'entrée
InputStream inputStream = conn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8" );
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
StringBuffer buffer = new StringBuffer();
while ( (str = bufferedReader. readLine()) != null) {
buffer.append(str);
}
// Libérer les ressources
bufferedReader.close() ;
inputStreamReader.close();
inputStream.close();
inputStream = null;
conn.disconnect( );
jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
log.error("Délai d'expiration de la connexion?: {} ", ce);
} catch (Exception e) {
log.error("https request exception: {}", e);
}
return jsonObject ;
}
}
(2) Créer un gestionnaire de confiance
package com.test.util;
importer java.security.cert.CertificateException;
importer java.security.cert.X509Certificate;
importer javax.net.ssl.X509TrustManager;
/**
*Gestionnaire de confiance
*
*/
classe publique implémentée par MyX509TrustManager > }
// Vérifier le certificat c?té serveur
public void checkServerTrusted (cha?ne X509Certificate[], String authType) lance CertificateException {
??>
// Renvoie un tableau de certificats X509 de confiance public 7 Après avoir terminé le travail ci-dessus, vous pouvez créer un menu personnalisé. Créez une classe de gestion de menu personnalisée. Attribuez appId et appSecret et exécutez la méthode principale, c'est fait. package com.test.menu;importer org.slf4j.Logger;importer org.slf4j.LoggerFactory;importer net.sf. json.JSONObject;importer com.test.bean.Button;importer com.test.bean.ComplexButton;importer com.test.bean.Menu;importer com.test.bean.Token;importer com.test.bean.ViewButton;importer com.test.util.CommonUtil; /** *Cours de gestionnaire de menus * */classe publique MenuManager { journal de l'enregistreur statique privé = LoggerFactory.getLogger(MenuManager.class); /** * Définir la structure du menu * @return */ Menu statique privé getMenu() { //Définir le sous-menu ViewButton btn1 = new ViewButton(); btn1.setName( " Sous-menu 1"); btn1.setType("view"); btn1.setUrl("http://www.baidu.com"); ViewButton btn2 = new ViewButton(); btn2.setName("Submenu 2"); btn2.setType("view"); btn2.setUrl ("http ://www.baidu.com"); ViewButton btn3 = new ViewButton(); btn3.setName("Submenu 3"); btn3.setType ("vue"); btn3.setUrl("http://www.baidu.com"); ViewButton btn4 = new ViewButton();btn4 .setName("Sous-menu 4"); btn4.setType("view"); btn4.setUrl("http://www.baidu.com" );
ComplexButton mainBtn1 = new ComplexButton(); mainBtn1.setName("Menu principal 1"); mainBtn1.setSub_button(new Button[] { btn1, btn2});/ /WeChat stipule jusqu'à cinq sous-menus ComplexButton mainBtn2 = new ComplexButton(); mainBtn2.setName("Main Menu 2"); mainBtn2 .setSub_button(new Button [] { btn3}); ComplexButton mainBtn3 = new ComplexButton(); mainBtn3.setName("Menu principal 3"); mainBtn3 .setSub_button(nouveau bouton [] {btn4}); Menu menu = new Menu(); menu.setButton(new Button[] { mainBtn1, mainBtn2, mainBtn3 }); return menu; } public static void main(String[] args) { // Le seul identifiant pour le compte public 1
String appId = ""; //Clé de certificat unique du compte public String appSecret = ""; // Appelez l'interface pour obtenir les identifiants Token token = CommonUtil.getToken(appId, appSecret); if (null != token) {
// Créer un menu
boolean result = createMenu(getMenu(), token.getAccessToken());
// Juger le résultat de la création du menu
if (result )
log.info("Menu créé avec succès!");
else
log.info("échec de la création du menu!");
}
}
/**
* Créer un menu
*
* @param menu instance de menu
* @param accessToken identifiant
* @return true success faux échoué
*/
public static boolean createMenu(Menu menu, String accessToken) {
boolean result = false ;
String menu_create_url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";
String url = menu_create_url.replace(" ACCESS_TOKEN", accessToken);
// Convertit l'objet menu en cha?ne json
String jsonMenu = JSONObject.fromObject(menu).toString();
// Lancer une requête POST pour créer un menu
JSONObject jsonObject = CommonUtil.httpsRequest(url, "POST", jsonMenu);
if (null != jsonObject) {
int errorCode = jsonObject.getInt("errcode");
String errorMsg = jsonObject.getString("errmsg");
if (0 == errorCode) {
result = true ;
} else {
result = false;
log.error("échec de la création du menu errcode?:{} errmsg:{}", errorCode, errorMsg);
}
}
résultat de retour;
}
}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP est un langage de script open source largement utilisé dans le développement Web et la programmation c?té serveur, notamment dans le développement de WeChat. Aujourd'hui, de plus en plus d'entreprises et de développeurs commencent à utiliser PHP pour le développement de WeChat, car il est devenu un langage de développement vraiment facile à apprendre et à utiliser. Dans le développement de WeChat, le cryptage et le décryptage des messages sont une question très importante car ils impliquent la sécurité des données. Pour les messages sans méthodes de cryptage et de décryptage, les pirates peuvent facilement obtenir les données, ce qui constitue une menace pour les utilisateurs.

Dans le développement des comptes publics WeChat, la fonction de vote est souvent utilisée. La fonction de vote est un excellent moyen pour les utilisateurs de participer rapidement aux interactions, et c'est également un outil important pour organiser des événements et recueillir des opinions. Cet article vous présentera comment utiliser PHP pour implémenter la fonction de vote WeChat. Obtenez l'autorisation du compte officiel WeChat. Tout d'abord, vous devez obtenir l'autorisation du compte officiel WeChat. Sur la plateforme publique WeChat, vous devez configurer l'adresse API du compte public WeChat, le compte officiel et le token correspondant au compte public. Dans le processus de développement en langage PHP, nous devons utiliser le PH officiellement fourni par WeChat

Avec la popularité de WeChat, de plus en plus d’entreprises commencent à l’utiliser comme outil marketing. La fonction de messagerie de groupe WeChat est l'un des moyens importants permettant aux entreprises de mener du marketing WeChat. Cependant, si vous comptez uniquement sur l’envoi manuel, il s’agit d’une tache extrêmement longue et laborieuse pour les spécialistes du marketing. Il est donc particulièrement important de développer un outil de messagerie de masse WeChat. Cet article présentera comment utiliser PHP pour développer des outils d'envoi de masse WeChat. 1. Travail de préparation Pour développer les outils d'envoi de masse WeChat, nous devons ma?triser les points techniques suivants : Connaissance de base du développement de la plateforme publique PHP WeChat Outils de développement : Sub

WeChat est actuellement l'une des plateformes sociales comptant la plus grande base d'utilisateurs au monde. Avec la popularité de l'Internet mobile, de plus en plus d'entreprises commencent à prendre conscience de l'importance du marketing WeChat. Lors du marketing WeChat, le service client est un élément crucial. Afin de mieux gérer la fenêtre de discussion du service client, nous pouvons utiliser le langage PHP pour le développement de WeChat. 1. Introduction au développement PHP WeChat PHP est un langage de script open source c?té serveur largement utilisé dans le domaine du développement Web. En combinaison avec l'interface de développement fournie par la plateforme publique WeChat, nous pouvons utiliser le langage PHP pour mener WeChat

Dans le développement des comptes publics WeChat, la gestion des balises utilisateur est une fonction très importante, qui permet aux développeurs de mieux comprendre et gérer leurs utilisateurs. Cet article explique comment utiliser PHP pour implémenter la fonction de gestion des balises utilisateur WeChat. 1. Obtenez l'openid de l'utilisateur WeChat Avant d'utiliser la fonction de gestion des balises utilisateur WeChat, nous devons d'abord obtenir l'openid de l'utilisateur. Dans le développement des comptes publics WeChat, il est courant d'obtenir l'openid via l'autorisation de l'utilisateur. Une fois l'autorisation de l'utilisateur terminée, nous pouvons obtenir l'utilisateur via le code suivant

Alors que WeChat devient un outil de communication de plus en plus important dans la vie des gens, sa fonction de messagerie agile est rapidement privilégiée par un grand nombre d'entreprises et de particuliers. Pour les entreprises, développer WeChat en une plate-forme marketing est devenu une tendance, et l'importance du développement de WeChat est progressivement devenue plus importante. Parmi eux, la fonction d'envoi de groupe est encore plus largement utilisée. Alors, en tant que programmeur PHP, comment implémenter des enregistrements d'envoi de messages de groupe ? Ce qui suit vous donnera une brève introduction. 1. Comprendre les connaissances en développement liées aux comptes publics WeChat. Avant de comprendre comment mettre en ?uvre des enregistrements d'envoi de messages de groupe, je

Comment utiliser PHP pour développer des comptes publics WeChat Les comptes publics WeChat sont devenus un canal important de promotion et d'interaction pour de nombreuses entreprises, et PHP, en tant que langage Web couramment utilisé, peut également être utilisé pour développer des comptes publics WeChat. Cet article présentera les étapes spécifiques pour utiliser PHP pour développer des comptes publics WeChat. étape 1 : Obtenez le compte développeur du compte officiel WeChat. Avant de commencer le développement du compte officiel WeChat, vous devez demander un compte développeur du compte officiel WeChat. Pour le processus d'inscription spécifique, veuillez vous référer au site officiel de la plateforme publique WeChat

Avec le développement d’Internet et des appareils mobiles intelligents, WeChat est devenu un élément indispensable dans les domaines social et marketing. Dans cette ère de plus en plus numérique, la manière d'utiliser PHP pour le développement de WeChat est devenue la préoccupation de nombreux développeurs. Cet article présente principalement les points de connaissances pertinents sur la fa?on d'utiliser PHP pour le développement WeChat, ainsi que certains conseils et précautions. 1. Préparation de l'environnement de développement Avant de développer WeChat, vous devez d'abord préparer l'environnement de développement correspondant. Plus précisément, vous devez installer l'environnement d'exploitation PHP et la plateforme publique WeChat
