程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 微信大眾號測試賬號自定義菜單的實例代碼

微信大眾號測試賬號自定義菜單的實例代碼

編輯:關於JAVA

微信大眾號測試賬號自定義菜單的實例代碼。本站提示廣大學習愛好者:(微信大眾號測試賬號自定義菜單的實例代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是微信大眾號測試賬號自定義菜單的實例代碼正文


自定義菜單接口可完成多品種型按鈕,如下:

1、click:點擊推事情

用戶點擊click類型按鈕後,微服氣務器會經過音訊接口推送音訊類型為event 的構造給開發者(參考音訊接口指南),並且帶上按鈕中開發者填寫的key值,開發者可以經過自定義的key值與用戶停止交互;

2、view:跳轉URL

用戶點擊view類型按鈕後,微信客戶端將會翻開開發者在按鈕中填寫的網頁URL,可與網頁受權獲取用戶根本信息接口結合,取得用戶根本信息。

3、scancode_push:掃碼推事情

用戶點擊按鈕後,微信客戶端將調起掃一掃工具,完成掃碼操作後顯示掃描後果(假如是URL,將進入URL),且會將掃碼的後果傳給開發者,開發者可以下發音訊。

4、scancode_waitmsg:掃碼推事情且彈出“音訊接納中”提示框

用戶點擊按鈕後,微信客戶端將調起掃一掃工具,完成掃碼操作後,將掃碼的後果傳給開發者,同時收起掃一掃工具,然後彈出“音訊接納中”提示框,隨後能夠會收到開發者下發的音訊。

5、pic_sysphoto:彈出零碎拍照發圖

用戶點擊按鈕後,微信客戶端將調起零碎相機,完成拍照操作後,會將拍攝的相片發送給開發者,並推送事情給開發者,同時收起零碎相機,隨後能夠會收到開發者下發的音訊。

6、pic_photo_or_album:彈出拍照或許相冊發圖

用戶點擊按鈕後,微信客戶端將彈出選擇器供用戶選擇“拍照”或許“從手機相冊選擇”。用戶選擇後即走其他兩種流程。

7、pic_weixin:彈出微信相冊發圖器

用戶點擊按鈕後,微信客戶端將調起微信相冊,完成選擇操作後,將選擇的相片發送給開發者的服務器,並推送事情給開發者,同時收起相冊,隨後能夠會收到開發者下發的音訊。

8、location_select:彈出天文地位選擇器

用戶點擊按鈕後,微信客戶端將調起天文地位選擇工具,完成選擇操作後,將選擇的天文地位發送給開發者的服務器,同時收起地位選擇工具,隨後能夠會收到開發者下發的音訊。

9、media_id:下發音訊(除文本音訊)

用戶點擊media_id類型按鈕後,微服氣務器會將開發者填寫的永世素材id對應的素材下發給用戶,永世素材類型可以是圖片、音頻、視頻、圖文音訊。請留意:永世素材id必需是在“素材管理/新增永世素材”接口上傳後取得的合法id。

10、view_limited:跳轉圖文音訊URL

用戶點擊view_limited類型按鈕後,微信客戶端將翻開開發者在按鈕中填寫的永世素材id對應的圖文音訊URL,永世素材類型只支持圖文音訊。請留意:永世素材id必需是在“素材管理/新增永世素材”接口上傳後取得的合法id。

請留意,3到8的一切事情,僅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信譽戶,舊版本微信譽戶點擊後將沒有回應,開發者也不能正常接納到事情推送。9和10,是專門給第三方平台旗下未微信認證(詳細而言,是資質認證未經過)的訂閱號預備的事情類型,它們是沒有事情推送的,才能絕對受限,其他類型的大眾號不用運用。

接口調用懇求闡明

http懇求方式:POST(請運用https協議) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

click和view的懇求示例

{ 
“button”:[ 
{ 
“type”:”click”, 
“name”:”昔日歌曲”, 
“key”:”V1001_TODAY_MUSIC” 
}, 
{ 
“name”:”菜單”, 
“sub_button”:[ 
{ 
“type”:”view”, 
“name”:”搜索”, 
“url”:”http://www.soso.com/” 
}, 
{ 
“type”:”view”, 
“name”:”視頻”, 
“url”:”http://v.qq.com/” 
}, 
{ 
“type”:”click”, 
“name”:”贊一下我們”, 
“key”:”V1001_GOOD” 
}] 
}] 
}

其他新增按鈕類型的懇求示例

{ 
“button”: [ 
{ 
“name”: “掃碼”, 
“sub_button”: [ 
{ 
“type”: “scancode_waitmsg”, 
“name”: “掃碼帶提示”, 
“key”: “rselfmenu_0_0”, 
“sub_button”: [ ] 
}, 
{ 
“type”: “scancode_push”, 
“name”: “掃碼推事情”, 
“key”: “rselfmenu_0_1”, 
“sub_button”: [ ] 
} 
] 
}, 
{ 
“name”: “發圖”, 
“sub_button”: [ 
{ 
“type”: “pic_sysphoto”, 
“name”: “零碎拍照發圖”, 
“key”: “rselfmenu_1_0”, 
“sub_button”: [ ] 
}, 
{ 
“type”: “pic_photo_or_album”, 
“name”: “拍照或許相冊發圖”, 
“key”: “rselfmenu_1_1”, 
“sub_button”: [ ] 
}, 
{ 
“type”: “pic_weixin”, 
“name”: “微信相冊發圖”, 
“key”: “rselfmenu_1_2”, 
“sub_button”: [ ] 
} 
] 
}, 
{ 
“name”: “發送地位”, 
“type”: “location_select”, 
“key”: “rselfmenu_2_0” 
}, 
{ 
“type”: “media_id”, 
“name”: “圖片”, 
“media_id”: “MEDIA_ID1” 
}, 
{ 
“type”: “view_limited”, 
“name”: “圖文音訊”, 
“media_id”: “MEDIA_ID2” 
} 
] 
}

參數闡明

參數 能否必需 闡明

button 是 一級菜雙數組,個數應為1~3個

sub_button 否 二級菜雙數組,個數應為1~5個

type 是 菜單的呼應舉措類型

name 是 菜單標題,不超越16個字節,子菜單不超越40個字節

key click等點擊類型必需 菜單KEY值,用於音訊接口推送,不超越128字節

url view類型必需 網頁鏈接,用戶點擊菜單可翻開鏈接,不超越1024字節

media_id media_id類型和view_limited類型必需 調用新增永世素材接口前往的合法media_id

前往後果

正確時的前往JSON數據包如下:

{“errcode”:0,”errmsg”:”ok”}

錯誤時的前往JSON數據包如下(示例為有效菜單名長度):

{“errcode”:40018,”errmsg”:”invalid button name size”}

以下的bean依據json格式拼接而成。。。

package org.ssm.maven.test1.menu;
public class Button {
  private String type;
  private String name;
  private Button[] sub_button;
  public String getType() {
    return type;
  }
  public void setType(String type) {
    this.type = type;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public Button[] getSub_button() {
    return sub_button;
  }
  public void setSub_button(Button[] sub_button) {
    this.sub_button = sub_button;
  }
}
package org.ssm.maven.test1.menu;
public class ClickButton extends Button {
  private String key;
  public String getKey() {
    return key;
  }
  public void setKey(String key) {
    this.key = key;
  }
}
package org.ssm.maven.test1.menu;
public class ViewButton extends Button {
  private String url;
  public String getUrl() {
    return url;
  }
  public void setUrl(String url) {
    this.url = url;
  }
}

依據菜單

package org.ssm.maven.test1.menu;
public class Menu {
  private Button[] button;
  public Button[] getButton() {
    return button;
  }
  public void setButton(Button[] button) {
    this.button = button;
  }
}

初始化菜單

public static Menu initMenu(){
    Menu menu = new Menu();
    ClickButton clickButton = new ClickButton();
    clickButton.setKey("clickButton");
    clickButton.setType("click");
    clickButton.setName("clickMenu");
    ViewButton viewButton = new ViewButton();
    viewButton.setName("viewButton");
    viewButton.setType("view");
    viewButton.setUrl("http://www.baidu.com");
    ClickButton clickButton1 = new ClickButton();
    clickButton1.setKey("scanButton");
    clickButton1.setType("scancode_push");
    clickButton1.setName("scanButton");
    ClickButton clickButton2 = new ClickButton();
    clickButton2.setKey("locationButton");
    clickButton2.setType("location_select");
    clickButton2.setName("locationButton");
    Button button = new Button();
    button.setName("Menu");
    button.setSub_button(new Button[]{clickButton1,clickButton2});
    menu.setButton(new Button[]{clickButton,viewButton,button});
    return menu;
  }
  //創立菜單的url拼接
  public static int createMenu(String menu, String token){
    String url = CREATE_MENU_URL.replace("ACCESS_TOKEN", token);
    int result = 0;
    JSONObject jsonObject = doPostStr(url, menu);
    if(jsonObject != null){
      result = jsonObject.getInt("errcode");
    }
    return result;
  }
  //查詢菜單的url的拼接
  public static JSONObject queryMenu(String token){
    String url = QUERY_MENU_URL.replace("ACCESS_TOKEN", token);
    JSONObject jsonObject = doGetUrl(url);
    return jsonObject;
  }
package org.ssm.maven.test1;
import java.sql.Timestamp;
import org.ssm.maven.test1.model.AccessToken;
import org.ssm.maven.test1.util.WechatUtil;
import org.ssm.maven.trans.util.TransUtil;
import net.sf.json.JSONObject;
public class WechatUtilTest {
  public static void main(String[] args) {
    AccessToken accessToken = WechatUtil.getAccessToken();
    System.out.println("accessToken=>" + accessToken.getToken());
    System.out.println("expiresIn=>" + accessToken.getExpiresIn());
    JSONObject fromObject = JSONObject.fromObject(WechatUtil.initMenu());
    int result = WechatUtil.createMenu(fromObject.toString(), accessToken.getToken());
    if (result == 0) {
      System.out.println("create menu success");
    } else {
      System.out.println("error code : " + result);
    }
  }
}

以上所述是給大家引見的微信大眾號測試賬號自定義菜單的實例代碼,希望對大家有所協助,假如大家有任何疑問請給我留言,會及時回復大家的。在此也十分感激大家對網站的支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved