日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义菜单用例

發布時間:2023/12/31 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义菜单用例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2013年8月5日,伴隨著微信5.0 iPhone版的發布,公眾平臺也進行了重要的更新,主要包括:

  • 運營主體為組織,可選擇成為服務號或者訂閱號;
  • 服務號可以申請自定義菜單;
  • 使用QQ登錄的公眾號,可以升級為郵箱登錄;
  • 使用郵箱登錄的公眾號,可以修改登錄郵箱;
  • 編輯圖文消息可選填作者;
  • 群發消息可以同步到騰訊微博。
  • 其中,大家議論最多的當屬前兩條,就是關于帳號類型和自定義菜單的更新,我這里做幾點補充說明:

  • 目前公眾號類型分為兩種:服務號和訂閱號,8月5日平臺更新后所有的帳號默認為訂閱號,有一次轉換成服務號的機會;
  • 服務號主要面向企業、政府和其他組織,而訂閱號主要面向媒體和個人;
  • 只有服務號可以申請自定義菜單,訂閱號不能申請;
  • 服務號每月只能群發一條消息,而訂閱號每天能群發一條消息。
  • 平臺更新后,讓很多人糾結的是自定義菜單和每天群發一條消息不可兼得,對此,我不想過多評論。

    引言及內容概要

    在微信5.0以前,自定義菜單是作為一種內測資格使用的,只有少數公眾帳號擁有菜單,因此出現很多企業為了弄到菜單不惜重金求購。現如今,一大批帳號從訂閱號轉為服務號,很多都是奔著自定義菜單去的。而且,經測試發現,微信最近的審核放松很多,只要申請服務號、自定義菜單的基本都成功了,根本不管填寫的資料真偽。不知道以后微信會不會翻臉,要求補全企業資料,那將會是一種給小孩一顆糖吃再把他打哭的感覺。。。

    自定義菜單是申請到了,到底該怎么創建、怎么使用呢?最近幾天不管是微信官方交流群,還是在我博客留言里,都能夠看到不少開發者都在為這個發愁。本篇文章就為大家解決這個難題。

    自定義菜單的創建步驟

  • 找到AppId和AppSecret。自定義菜單申請成功后,在"高級功能"-"開發模式"-"接口配置信息"的最后兩項就是;
  • 根據AppId和AppSecret,以https get方式獲取訪問特殊接口所必須的憑證access_token;
  • 根據access_token,將json格式的菜單數據通過https post方式提交。
  • 分析創建菜單的難點

    原來創建菜單這么簡單,三步就能搞定?跟把大象放冰箱差不多。呵呵,當然沒有這么簡單,那我們一步步來看,到底難在哪里?

    首先,第1步肯定都沒有問題,只要成功申請了自定義菜單,一定能拿到AppId和AppSecret這兩個值。

    再來看第2步,由于是get方式獲取access_token,很多人直接把拼好的url放在瀏覽器里執行,access_token就拿到了。拋開是不是用編程方式實現的來說,這真是個好辦法,顯然大家在第二步上也沒有問題。

    最后再看第3步,拼裝json格式的菜單數據,雖然繁鎖一點,但基本上也都沒有什么問題的,因為官方給了個例子,照貓畫虎就行了。那問題一定就出現在https post提交上了。

    結論:不知道如何創建自定義菜單的朋友,大都可以歸為以下三種情況:

  • 根本不看或者沒看懂公眾平臺API文檔中關于"通用接口"、"自定義菜單接口"和"使用限制"部分的說明;
  • 不知道如何發起HTTPS請求(平時的http請求,直接使用HttpUrlConnection就可以輕松搞定,但https請求要復雜一點);
  • 不知道如何通過POST方式提交json格式的菜單數據。
  • 正在看文章的你,不知道是屬于哪一種,或者幾種情況都有,不妨留言說出來,也可以做個調查。不管屬于哪一種情況,既然看到了這篇文章,相信一定會讓你弄明白的。

    解讀通用接口文檔---憑證的獲取

    我們先來看通用接口文檔的簡介部分,如下圖所示。

    通俗點講,這段簡介可以這么理解:公眾平臺還有很多特殊的接口,像自定義菜單的創建、語音文件的獲取、主動發送消息等,如果開發者想通過HTTP請求訪問這些特殊接口,就必須要有訪問憑證,也就是access_token。

    那么,又該如何獲取接口訪問憑證access_token呢?讓我們繼續往下看。

    圖中已經表達的很清楚了,獲取access_token是通過GET方式訪問如下鏈接:

    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

    鏈接中有三個參數,分別是grant_type、appid和secret。根據圖中的參數說明,grant_type傳固定值client_credential,而appid和secret就是申請完自定義菜單后微信分配給我們的。

    請求發送成功后,微信服務器會返回一個json串,包含access_token和expires_in兩個元素。其中,access_token就是我們最終需要的憑證,而expires_in是憑證的有效期,單位是秒,7200秒也就是2個小時。這就意味著,不是每次訪問特殊接口,都需要重新獲取一次access_token,只要access_token還在有效期內,就一直可以使用。

    解讀自定義菜單接口文檔

    還是一樣,先來看看自定義菜單接口的簡介部分,如下圖所示。

    從圖中我們能夠獲取到以下信息:

  • 拿到憑證access_token后,我們能對菜單執行三種操作:創建、查詢和刪除;
  • 自定義菜單目前只支持click一種事件,即用戶點擊后回復某種類型的消息;不能夠實現點擊菜單項直接打開頁面(type=view未開放,目前只是微生活有);
  • 由于微信客戶端緩存的原因,菜單創建后并不會立即在微信上顯示出來,需要過24小時。在測試菜單創建時,可以通過取消關注后,再關注的方式達到立即看菜單的目的。
  • 繼續往下看,就是關于菜單怎么創建的介紹了,如下圖所示。

    其實就是向地址https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN以POST方式提交一個JSON格式的菜單字符串。

    后面,關于參數說明的部分我就不一一貼圖說明了,把重點說一下:

  • 自定義菜單是一個3x5結構的,即菜單最多只能有二級,一級菜單最多只能有3個,每個一級菜單下最多可以有5個二級菜單項;
  • 菜單項都有一個key值。當用戶點擊某個菜單項時,微信會將該菜單項的key值以事件推送的方式發送給我們的后臺處理程序。
  • 關于菜單的查詢、創建我就不提了,這兩個接口使用的頻率非常小,一般都用不上。如果需要,再按照我上面提供的思路也不難理解。

    解讀API文檔之使用限制

    很多小伙伴看到這張圖就開始疑惑了:怎么菜單還限制使用次數,用戶量越來越大的時候,根本不夠用啊。看清楚,這個限制是針對接口調用的,也就是針對開發者的,和用戶數、使用次數半點關系也沒有。

    就先拿獲取憑證接口來說吧,限制一天只能調用200次。還記得前面提到過access_token是有有效期的,并且有效期為兩小時,也就是獲取一次access_token后的兩小時內,都可以繼續使用,那么理想情況一天24小時內,是不是只需要獲取12次就夠了?難道200次還不夠用?

    再來看下菜單創建接口限制一天只能調用100次。我就這么解釋吧,菜單創建一次后,只要你不切換模式(指的是在編輯模式和開發模式間切換)、不調用刪除接口,這個菜單會永遠存在的。誰沒事干,一天要創建100次菜單,就算是測試,測個10次8次足夠了吧?

    菜單的查詢和刪除接口的限制我就不解釋了,至今為止這二個接口我都沒使用過一次。就算有這樣的使用需求,一天這么多次的調用,完全足夠了。

    封裝通用的請求方法

    讀到這里,就默認大家已經掌握了上面講到的所有關于自定義菜單的理論知識,下面就進入代碼實戰講解的部分。

    先前我們了解到,創建菜單需要調用二個接口,并且都是https請求,而非http。如果要封裝一個通用的請求方法,該方法至少需要具備以下能力:

  • 支持HTTPS請求;
  • 支持GET、POST兩種方式;
  • 支持參數提交,也支持無參數的情況;
  • 對于https請求,我們需要一個證書信任管理器,這個管理器類需要自己定義,但需要實現X509TrustManager接口,代碼如下:

    package org.liufeng.weixin.util;import java.security.cert.CertificateException; import java.security.cert.X509Certificate;import javax.net.ssl.X509TrustManager;/*** 證書信任管理器(用于https請求)* * @author liufeng* @date 2013-08-08*/ public class MyX509TrustManager implements X509TrustManager {public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}public X509Certificate[] getAcceptedIssuers() {return null;} }

    這個證書管理器的作用就是讓它信任我們指定的證書,上面的代碼意味著信任所有證書,不管是否權威機構頒發。

    證書有了,通用的https請求方法就不難實現了,實現代碼如下:

    package org.liufeng.weixin.util;import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ConnectException; import java.net.URL;import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager;import net.sf.json.JSONObject;import org.slf4j.Logger; import org.slf4j.LoggerFactory;/*** 公眾平臺通用接口工具類* * @author liuyq* @date 2013-08-09*/ public class WeixinUtil {private static Logger log = LoggerFactory.getLogger(WeixinUtil.class);/*** 發起https請求并獲取結果* * @param requestUrl 請求地址* @param requestMethod 請求方式(GET、POST)* @param outputStr 提交的數據* @return JSONObject(通過JSONObject.get(key)的方式獲取json對象的屬性值)*/public static JSONObject httpRequest(String requestUrl, String requestMethod, String outputStr) {JSONObject jsonObject = null;StringBuffer buffer = new StringBuffer();try {// 創建SSLContext對象,并使用我們指定的信任管理器初始化TrustManager[] tm = { new MyX509TrustManager() };SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");sslContext.init(null, tm, new java.security.SecureRandom());// 從上述SSLContext對象中得到SSLSocketFactory對象SSLSocketFactory ssf = sslContext.getSocketFactory();URL url = new URL(requestUrl);HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();httpUrlConn.setSSLSocketFactory(ssf);httpUrlConn.setDoOutput(true);httpUrlConn.setDoInput(true);httpUrlConn.setUseCaches(false);// 設置請求方式(GET/POST)httpUrlConn.setRequestMethod(requestMethod);if ("GET".equalsIgnoreCase(requestMethod))httpUrlConn.connect();// 當有數據需要提交時if (null != outputStr) {OutputStream outputStream = httpUrlConn.getOutputStream();// 注意編碼格式,防止中文亂碼outputStream.write(outputStr.getBytes("UTF-8"));outputStream.close();}// 將返回的輸入流轉換成字符串InputStream inputStream = httpUrlConn.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String str = null;while ((str = bufferedReader.readLine()) != null) {buffer.append(str);}bufferedReader.close();inputStreamReader.close();// 釋放資源inputStream.close();inputStream = null;httpUrlConn.disconnect();jsonObject = JSONObject.fromObject(buffer.toString());} catch (ConnectException ce) {log.error("Weixin server connection timed out.");} catch (Exception e) {log.error("https request error:{}", e);}return jsonObject;} }

    代碼說明:

  • 41~50行:解決https請求的問題,很多人問題就出在這里;
  • 55~59行:兼容GET、POST兩種方式;
  • 61~67行:兼容有數據提交、無數據提交兩種情況,也有相當一部分人不知道如何POST提交數據;
  • Pojo類的封裝

    在獲取憑證創建菜單前,我們還需要封裝一些pojo,這會讓我們的代碼更美觀,有條理。

    首先是調用獲取憑證接口后,微信服務器會返回json格式的數據:{"access_token":"ACCESS_TOKEN","expires_in":7200},我們將其封裝為一個AccessToken對象,對象有二個屬性:token和expiresIn,代碼如下:

    package org.liufeng.weixin.pojo;/*** 微信通用接口憑證* * @author liufeng* @date 2013-08-08*/ public class AccessToken {// 獲取到的憑證private String token;// 憑證有效時間,單位:秒private int expiresIn;public String getToken() {return token;}public void setToken(String token) {this.token = token;}public int getExpiresIn() {return expiresIn;}public void setExpiresIn(int expiresIn) {this.expiresIn = expiresIn;} }

    接下來是對菜單結構的封裝。因為我們是采用面向對象的編程方式,最終提交的json格式菜單數據就應該是由對象直接轉換得到,而不是在程序代碼中拼一大堆json數據。菜單結構封裝的依據是公眾平臺API文檔中給出的那一段json格式的菜單結構,如下所示:

    {"button":[{ "type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC"},{"type":"click","name":"歌手簡介","key":"V1001_TODAY_SINGER"},{"name":"菜單","sub_button":[{"type":"click","name":"hello word","key":"V1001_HELLO_WORLD"},{"type":"click","name":"贊一下我們","key":"V1001_GOOD"}]}]}

    首先是菜單項的基類,所有一級菜單、二級菜單都共有一個相同的屬性,那就是name。菜單項基類的封裝代碼如下:

    package org.liufeng.weixin.pojo;/*** 按鈕的基類* * @author liufeng* @date 2013-08-08*/ public class Button {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;} }

    接著是子菜單項的封裝。這里對子菜單是這樣定義的:沒有子菜單的菜單項,有可能是二級菜單項,也有可能是不含二級菜單的一級菜單。這類子菜單項一定會包含三個屬性:type、name和key,封裝的代碼如下:

    package org.liufeng.weixin.pojo;/*** 普通按鈕(子按鈕)* * @author liufeng* @date 2013-08-08*/ public class CommonButton extends Button {private String type;private String key;public String getType() {return type;}public void setType(String type) {this.type = type;}public String getKey() {return key;}public void setKey(String key) {this.key = key;} }

    再往下是父菜單項的封裝。對父菜單項的定義:包含有二級菜單項的一級菜單。這類菜單項包含有二個屬性:name和sub_button,而sub_button以是一個子菜單項數組。父菜單項的封裝代碼如下:

    package org.liufeng.weixin.pojo;/*** 復雜按鈕(父按鈕)* * @author liufeng* @date 2013-08-08*/ public class ComplexButton extends Button {private Button[] sub_button;public Button[] getSub_button() {return sub_button;}public void setSub_button(Button[] sub_button) {this.sub_button = sub_button;} }

    最后是整個菜單對象的封裝,菜單對象包含多個菜單項(最多只能有3個),這些菜單項即可以是子菜單項(不含二級菜單的一級菜單),也可以是父菜單項(包含二級菜單的菜單項),如果能明白上面所講的,再來看封裝后的代碼就很容易理解了:

    package org.liufeng.weixin.pojo;/*** 菜單* * @author liufeng* @date 2013-08-08*/ public class Menu {private Button[] button;public Button[] getButton() {return button;}public void setButton(Button[] button) {this.button = button;} }

    關于POJO類的封裝就介紹完了。

    憑證access_token的獲取方法

    繼續在先前通用請求方法的類WeixinUtil.java中加入以下代碼,用于獲取接口訪問憑證:

    // 獲取access_token的接口地址(GET) 限200(次/天) public final static String access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";/*** 獲取access_token* * @param appid 憑證* @param appsecret 密鑰* @return*/ public static AccessToken getAccessToken(String appid, String appsecret) {AccessToken accessToken = null;String requestUrl = access_token_url.replace("APPID", appid).replace("APPSECRET", appsecret);JSONObject jsonObject = httpRequest(requestUrl, "GET", null);// 如果請求成功if (null != jsonObject) {try {accessToken = new AccessToken();accessToken.setToken(jsonObject.getString("access_token"));accessToken.setExpiresIn(jsonObject.getInt("expires_in"));} catch (JSONException e) {accessToken = null;// 獲取token失敗log.error("獲取token失敗 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));}}return accessToken; }

    自定義菜單的創建方法

    繼續在先前通用請求方法的類WeixinUtil.java中加入以下代碼,用于創建自定義菜單:

    // 菜單創建(POST) 限100(次/天)public static String menu_create_url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";/*** 創建菜單* * @param menu 菜單實例* @param accessToken 有效的access_token* @return 0表示成功,其他值表示失敗*/ public static int createMenu(Menu menu, String accessToken) {int result = 0;// 拼裝創建菜單的urlString url = menu_create_url.replace("ACCESS_TOKEN", accessToken);// 將菜單對象轉換成json字符串String jsonMenu = JSONObject.fromObject(menu).toString();// 調用接口創建菜單JSONObject jsonObject = httpRequest(url, "POST", jsonMenu);if (null != jsonObject) {if (0 != jsonObject.getInt("errcode")) {result = jsonObject.getInt("errcode");log.error("創建菜單失敗 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));}}return result; }

    調用封裝的方法創建自定義菜單

    package org.liufeng.weixin.main;import org.liufeng.weixin.pojo.AccessToken; import org.liufeng.weixin.pojo.Button; import org.liufeng.weixin.pojo.CommonButton; import org.liufeng.weixin.pojo.ComplexButton; import org.liufeng.weixin.pojo.Menu; import org.liufeng.weixin.util.WeixinUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory;/*** 菜單管理器類* * @author liufeng* @date 2013-08-08*/ public class MenuManager {private static Logger log = LoggerFactory.getLogger(MenuManager.class);public static void main(String[] args) {// 第三方用戶唯一憑證String appId = "000000000000000000";// 第三方用戶唯一憑證密鑰String appSecret = "00000000000000000000000000000000";// 調用接口獲取access_tokenAccessToken at = WeixinUtil.getAccessToken(appId, appSecret);if (null != at) {// 調用接口創建菜單int result = WeixinUtil.createMenu(getMenu(), at.getToken());// 判斷菜單創建結果if (0 == result)log.info("菜單創建成功!");elselog.info("菜單創建失敗,錯誤碼:" + result);}}/*** 組裝菜單數據* * @return*/private static Menu getMenu() {CommonButton btn11 = new CommonButton();btn11.setName("天氣預報");btn11.setType("click");btn11.setKey("11");CommonButton btn12 = new CommonButton();btn12.setName("公交查詢");btn12.setType("click");btn12.setKey("12");CommonButton btn13 = new CommonButton();btn13.setName("周邊搜索");btn13.setType("click");btn13.setKey("13");CommonButton btn14 = new CommonButton();btn14.setName("歷史上的今天");btn14.setType("click");btn14.setKey("14");CommonButton btn21 = new CommonButton();btn21.setName("歌曲點播");btn21.setType("click");btn21.setKey("21");CommonButton btn22 = new CommonButton();btn22.setName("經典游戲");btn22.setType("click");btn22.setKey("22");CommonButton btn23 = new CommonButton();btn23.setName("美女電臺");btn23.setType("click");btn23.setKey("23");CommonButton btn24 = new CommonButton();btn24.setName("人臉識別");btn24.setType("click");btn24.setKey("24");CommonButton btn25 = new CommonButton();btn25.setName("聊天嘮嗑");btn25.setType("click");btn25.setKey("25");CommonButton btn31 = new CommonButton();btn31.setName("Q友圈");btn31.setType("click");btn31.setKey("31");CommonButton btn32 = new CommonButton();btn32.setName("電影排行榜");btn32.setType("click");btn32.setKey("32");CommonButton btn33 = new CommonButton();btn33.setName("幽默笑話");btn33.setType("click");btn33.setKey("33");ComplexButton mainBtn1 = new ComplexButton();mainBtn1.setName("生活助手");mainBtn1.setSub_button(new CommonButton[] { btn11, btn12, btn13, btn14 });ComplexButton mainBtn2 = new ComplexButton();mainBtn2.setName("休閑驛站");mainBtn2.setSub_button(new CommonButton[] { btn21, btn22, btn23, btn24, btn25 });ComplexButton mainBtn3 = new ComplexButton();mainBtn3.setName("更多體驗");mainBtn3.setSub_button(new CommonButton[] { btn31, btn32, btn33 });/*** 這是公眾號xiaoqrobot目前的菜單結構,每個一級菜單都有二級菜單項<br>* * 在某個一級菜單下沒有二級菜單的情況,menu該如何定義呢?<br>* 比如,第三個一級菜單項不是"更多體驗",而直接是"幽默笑話",那么menu應該這樣定義:<br>* menu.setButton(new Button[] { mainBtn1, mainBtn2, btn33 });*/Menu menu = new Menu();menu.setButton(new Button[] { mainBtn1, mainBtn2, mainBtn3 });return menu;} }

    注意:在運行以上代碼時,需要將appId和appSecret換成你自己公眾號的。

    ?

    為了保證文章的完整獨立性和可讀性,我是新建了一個Java?Project(Java web工程也可以,沒有太大關系),沒有在前幾篇文章所講到的weixinCourse工程中添加代碼。如果需要,讀者可以自己實現將菜單創建的代碼移到自己已有的工程中去。

    圖中所有Java文件的源代碼都在文章中貼出并進行了說明,圖中使用到的jar也是Java開發中通用的jar包,很容易在網上下載到。

    工程中引入的jar包主要分為兩類:

  • 第一類是json開發工具包,用于Java對象和Json字符串之間的轉換;json開發工具包一共有3個jar:ezmorph-1.0.6.jar,json-lib-2.2.3-jdk13.jar和morph-1.1.1.jar。
  • 第二類是slf4j日志工具包,用于記錄系統運行所產生的日志,日志可以輸出到控制臺或文件中。
  • 整個工程中,唯一沒有講到的是src下的log4j.properties的配置,也把它貼出來,方便大家參考,這樣才是一個完整的工程源碼。log4j.properties文件的內容如下:

    log4j.rootLogger=info,console,filelog4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%-5p] %m%nlog4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.DatePattern='-'yyyy-MM-dd log4j.appender.file.File=./logs/weixinmpmenu.log log4j.appender.file.Append=true log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%-5p] %d %37c %3x - %m%n

    響應時間參考代碼如下:

    <?phpdefine("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (isset($_GET['echostr'])) {$wechatObj->valid(); }else{$wechatObj->responseMsg(); }class wechatCallbackapiTest {public function valid(){$echoStr = $_GET["echostr"];if($this->checkSignature()){echo $echoStr;exit;}}private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}public function responseMsg(){$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];if (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$RX_TYPE=trim($postObj->MsgType);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$time = time();$msgType = "text";$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>";switch($RX_TYPE){case "text":$keyword = trim($postObj->Content);$url = "http://apix.sinaapp.com/weather/?appkey=".$postObj->ToUserName."&city=".urlencode($keyword);$output = file_get_contents($url);$content = json_decode($output, true);$itemTpl = " <item><Title><![CDATA[%s]]></Title><Description><![CDATA[%s]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[%s]]></Url></item>";$item_str = "";if(!is_array($content)){$resultStr = sprintf($textTpl, $postObj->FromUserName, $postObj->ToUserName, time(), "text", "無法找到該地址");}else{foreach ($content as $item){$item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);}$newsTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[news]]></MsgType><Content><![CDATA[]]></Content><ArticleCount>%s</ArticleCount><Articles>%s</Articles></xml>";$resultStr = sprintf($newsTpl, $postObj->FromUserName, $postObj->ToUserName, time(), count($content), $item_str);}echo $resultStr;break;case "event":switch ($postObj->Event){case "subscribe":$contentStr = "歡迎關注";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;break;case "LOCATION":$contentStr = "緯度 ".$postObj->Latitude." 經度".$postObj->Longitude;$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;break;case "CLICK":$contentStr = "";switch($postObj->EventKey){case "11":$contentStr = "自己去外面看看天氣唄~";break;case "12":$contentStr = "站牌那里有~";break;case "13":$contentStr = "扭個頭就都看見了~";break;case "14":$contentStr = "歷史上的今天啊,我想想哦~";break;case "21":$contentStr = "我今天嗓子啞了,你就別聽了~";break;case "22":$contentStr = "石頭剪刀布?";break;case "23":$contentStr = "我是美女你是電臺~";break;case "24":$contentStr = "你太丑識別不出來~";break;case "31":$contentStr = "你只有我一個好友~";break;case "32":$contentStr = "我的電影還沒出呢~";break;case "33":$contentStr = "你自己就是個笑話~";break;case "25":$contentStr = "咱倆是一個年代的嗎?沒話聊~";break;default:$contentStr = "CLICK: ".$postObj->EventKey;break;}$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;break;default:break;}break;case "image":$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[news]]></MsgType><Content><![CDATA[]]></Content><ArticleCount>1</ArticleCount><Articles><item><Title><![CDATA[hello]]></Title><Description><![CDATA[hello]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[]]></Url></item></Articles><FuncFlag>0</FuncFlag></xml>";$resultStr = sprintf($textTpl, $postObj->FromUserName, $postObj->ToUserName,time(), $postObj->PicUrl); echo $resultStr;break;default:break;}}else{echo "";exit;}}public function transmitNews($object, $newsArray){if(!is_array($newsArray)){return "";}return $result;} } ?>

    總結

    以上是生活随笔為你收集整理的自定义菜单用例的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    亚洲精品国产高清 | 欧美超碰在线 | 91精品网站在线观看 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 久久看片网| 国产午夜免费视频 | 最近最新中文字幕视频 | 久久精品这里热有精品 | 国产一区二区三区视频在线 | 色综合天天综合 | 免费a视频在线 | 操操操av | 麻豆传媒电影在线观看 | 欧美九九九 | 91九色精品 | 国内一区二区视频 | 婷婷六月天在线 | 欧美日韩电影在线播放 | 精品国产综合区久久久久久 | 久久久精品福利视频 | www.久久91| 91福利影院在线观看 | 97视频在线免费 | 91精品导航| 国产视频在线播放 | 亚洲伊人成综合网 | 国产黄色免费电影 | 911国产精品 | 欧美福利网址 | 日日夜夜天天干 | 成人免费网视频 | 婷婷色中文网 | 亚洲国产精品成人精品 | 天天射日| 免费视频xnxx com | 99色视频在线 | 亚洲精品福利在线观看 | 91久久丝袜国产露脸动漫 | 国产夫妻性生活自拍 | 女人高潮一级片 | www.日日日.com | 一区二区三区在线影院 | 99精品国产福利在线观看免费 | 97影视| 久久呀| 国产精品99久久久精品免费观看 | 久久91网| 免费日韩一区二区三区 | 日韩精品中文字幕一区二区 | 婷婷日韩| 91成人黄色| 久久国产精品99久久久久久丝袜 | 免费a视频 | 久久久久综合精品福利啪啪 | 国产成人一区三区 | 国产精品毛片一区二区三区 | 91九色综合 | 国产精品99久久免费黑人 | 亚洲成人一区 | 中文字幕专区高清在线观看 | 在线免费观看成人 | 国产资源| 国产专区视频在线观看 | 亚州av网站 | 免费观看www视频 | 日韩在线视频国产 | 免费观看午夜视频 | 特级黄色片免费看 | 亚洲黄色免费在线 | 国产精品女主播一区二区三区 | 久草在线91 | 国产正在播放 | 精品国偷自产国产一区 | 五月天网页 | 久久久影院官网 | 亚洲欧美成人综合 | 免费99精品国产自在在线 | 成人在线免费观看视视频 | 亚洲欧洲av | 天天天天天天天操 | www.亚洲| 亚洲一级电影在线观看 | 9i看片成人免费看片 | 香蕉在线观看 | 色欧美成人精品a∨在线观看 | 99热在线国产 | www.色午夜| 天天干天天怕 | 久草在线精品观看 | 国产视频美女 | 免费精品人在线二线三线 | 正在播放亚洲精品 | 午夜精品一区二区三区四区 | 日韩xxxbbb| 黄色网www| 91高清完整版在线观看 | 五月天中文字幕 | 天天干天天看 | 国产精品嫩草影院99网站 | 91精品国产麻豆国产自产影视 | 国产女做a爱免费视频 | 2022中文字幕在线观看 | 激情网综合 | 天天操天天干天天摸 | 国产精品一区一区三区 | 亚洲人在线 | 国产乱老熟视频网88av | 色综合夜色一区 | 亚洲精品在线视频网站 | 国产区网址 | 国产精国产精品 | 日韩 在线a | 国产精品中文字幕av | 亚洲一区av | 中文字幕免费成人 | 人人草在线视频 | 婷婷丁香色 | 免费av在线网 | 国产免费视频在线 | 日本护士三级少妇三级999 | 国产一区二区三区久久久 | 1024久久 | 亚洲午夜小视频 | 日韩精品一区二区三区免费观看视频 | 久草在线观看 | 五月婷婷操 | 91视频啊啊啊 | 99高清视频有精品视频 | 免费亚洲视频 | 在线亚洲精品 | 久久午夜精品 | 黄色免费国产 | 98超碰在线观看 | www色 | 精品国产不卡 | 色综合久久88色综合天天 | 久久99久久99精品 | 天堂av最新网址 | 天天操夜 | 日韩免费一区二区在线观看 | 日韩欧在线 | 午夜aaaa | 国产色资源 | 国产又粗又猛又黄视频 | 福利电影久久 | 亚洲高清视频在线 | 美女一二三区 | 91av色| 成人a免费 | 99久在线精品99re8热视频 | 免费色视频网址 | 911国产精品 | 精品成人a区在线观看 | 麻豆久久久 | 韩国精品福利一区二区三区 | 日韩在线观看影院 | 天天射,天天干 | 丁香婷婷激情啪啪 | 在线v片免费观看视频 | 欧美精品中文在线免费观看 | 久久久久久久久久影院 | 人人插人人澡 | 香蕉视频在线播放 | 人人爱在线视频 | 免费黄色在线网站 | 激情久久一区二区三区 | 丁香免费视频 | 少妇视频一区 | 丁香在线视频 | 精品国产乱码久久久久久1区二区 | 亚洲国产精品日韩 | 国产成人精品午夜在线播放 | 日韩精品久久久 | 日韩色视频在线观看 | 五月婷婷一区 | 日韩av在线一区二区 | 精品久久久久久久久久久久 | 精品久久五月天 | 国产免费视频一区二区裸体 | 亚洲精品视频在线看 | 亚洲精品一区二区三区在线观看 | 欧美在线18 | 日韩网站中文字幕 | 久久综合亚洲鲁鲁五月久久 | 国产粉嫩在线 | 久草免费资源 | 亚洲精品白浆高清久久久久久 | 久久这里精品视频 | 蜜臀av夜夜澡人人爽人人桃色 | 国产视频不卡一区 | 国产97色 | 91麻豆精品国产91久久久更新时间 | 六月丁香在线视频 | 在线观看视频免费播放 | 成人亚洲精品久久久久 | 99视频免费 | 91香蕉视频黄色 | 黄色免费网站 | 天天天色| 欧美a级在线免费观看 | 久久伊人综合 | 不卡电影一区二区三区 | 最近中文字幕高清字幕在线视频 | 免费一级日韩欧美性大片 | 香蕉影视app| 97av影院 | 西西大胆啪啪 | 在线观看免费av网 | 亚洲精品乱码久久久久久9色 | 91麻豆精品国产91久久久久久 | 久久国产精彩视频 | 免费高清国产 | 波多野结衣久久资源 | 免费高清av在线看 | 日韩成人xxxx| 国产成人av在线 | 婷婷综合成人 | 天天插天天干天天操 | 91传媒在线看 | 国产精品成人在线 | 五月天国产精品 | 欧美孕妇与黑人孕交 | 在线日本看片免费人成视久网 | 亚洲热久久| 国产护士av | 欧美亚洲精品在线观看 | 国产精品毛片网 | 中文字幕.av.在线 | 狠狠五月天 | 日本电影久久 | 欧美日韩免费观看一区二区三区 | 丁香激情综合国产 | 99热这里只有精品久久 | 午夜精品成人一区二区三区 | 国产69熟| 国产黄色免费电影 | 亚洲成av人片 | 亚洲资源视频 | 日韩中文字幕视频在线 | 国产日本在线播放 | 日韩免费电影网站 | 91丨九色丨高潮丰满 | 中文字幕观看在线 | 91久久丝袜国产露脸动漫 | 狠狠色噜噜狠狠狠狠2021天天 | 亚洲国产午夜视频 | 国产亚洲精品久久久久久网站 | 国产日韩欧美综合在线 | 国产精品乱码久久久久久1区2区 | 久久色中文字幕 | 欧美日韩国产一区二区三区在线观看 | 在线观看黄色大片 | 中文字幕在线网址 | 亚洲一区视频在线播放 | 91精品推荐 | 色综合中文综合网 | 91在线精品视频 | 久久久久久久久亚洲精品 | 日韩专区在线 | 欧美精品国产综合久久 | 亚洲视频 中文字幕 | av在线免费观看黄 | 婷婷在线播放 | 欧美性久久久 | 国产福利免费在线观看 | 免费看黄网站在线 | 久99久中文字幕在线 | 五月天中文字幕 | 国产在线高清精品 | 欧美一区二区日韩一区二区 | 欧美精品亚洲精品日韩精品 | 国产精品麻豆视频 | 国产一区欧美在线 | 黄色一级影院 | 日韩av中文字幕在线 | 中文字幕999| 成人一级片视频 | 日日干视频| 国产小视频在线观看 | 欧美日韩精品区 | 香蕉免费在线 | 亚洲一区二区三区在线看 | 高潮毛片无遮挡高清免费 | 深爱激情亚洲 | av午夜电影| 亚洲高清av在线 | 狠狠色狠狠色综合日日92 | 国产成人香蕉 | 五月天激情开心 | 免费视频你懂的 | 天天拍天天色 | 视频国产在线观看18 | 日韩最新在线 | 国产精品久久久久久久毛片 | 日韩精品视频在线观看免费 | 日韩特黄一级欧美毛片特黄 | 欧美色噜噜 | 五月天婷婷综合 | 国产成人av在线 | 啪啪午夜免费 | 九九热精品国产 | 日日摸日日添夜夜爽97 | 免费精品久久久 | 中文资源在线官网 | 日本久久成人中文字幕电影 | 国精产品满18岁在线 | 狠狠网亚洲精品 | 色www精品视频在线观看 | 免费人成在线观看网站 | 91久久精| 超碰在线最新地址 | 天天综合网 天天 | 久久99精品久久久久久 | 91成人破解版 | 国产成年人av | 国产精品 999| 日韩h在线观看 | 91最新在线 | 精品国产诱惑 | 国产精品门事件 | 久久久久国产精品免费网站 | 在线免费观看视频你懂的 | 天天色 天天 | 久久综合色天天久久综合图片 | 国产麻豆精品一区二区 | 天天天天爽 | 欧美婷婷综合 | 国产成视频在线观看 | 欧美在线观看视频一区二区 | 91福利社在线观看 | 天天干天天玩天天操 | 成片人卡1卡2卡3手机免费看 | 天天色天天操综合网 | 看v片| 99热播精品 | 91视频91蝌蚪 | 热久久国产| 久久成人精品电影 | 五月综合 | 九九国产视频 | 黄色软件视频网站 | 国产免费观看av | 日韩免费观看一区二区三区 | 成人黄色毛片 | 国产一区视频免费在线观看 | 亚洲永久av | 久久久麻豆 | 国产成人精品综合 | 久久精品激情 | 黄色一二级片 | 欧美成人免费在线 | 亚洲视频免费 | 成人高清av在线 | 经典三级一区 | 欧美在线91 | 色婷婷伊人 | 中文字幕在线观看一区二区三区 | 国产最顶级的黄色片在线免费观看 | 六月婷色 | 亚洲精品在线观 | 在线观看日韩 | 精品久久国产 | 久久久久久久久久福利 | 免费网站黄色 | 精品福利网站 | 国产一区二区手机在线观看 | 香蕉视频国产在线 | 99久久婷婷国产综合精品 | 91人人澡人人爽人人精品 | 日本一区二区三区免费看 | 日韩一区二区在线免费观看 | 午夜精品一区二区三区四区 | 伊人www22综合色 | 久久dvd | 天天天天天操 | 精品一区免费 | 中文字幕日韩av | 91精品免费视频 | 久久视频这里有精品 | 91精品国产综合久久婷婷香蕉 | 91在线观看欧美日韩 | 人人狠狠综合久久亚洲婷 | 久久精品香蕉 | 丁香网婷婷 | 国产伦理精品一区二区 | 国产日韩视频在线观看 | 欧美美女激情18p | av福利在线 | 国产精品123 | 色婷婷色| 久久激五月天综合精品 | 国产中文字幕在线观看 | 人人插人人射 | 一级a性色生活片久久毛片波多野 | 中文字幕免费久久 | 欧美日韩啪啪 | 伊人中文网 | 中文网丁香综合网 | 五月婷综合| 国产美女精品视频免费观看 | 日韩一区二区三区视频在线 | 精品极品在线 | 国产精品福利午夜在线观看 | 最近日本韩国中文字幕 | 成人免费av电影 | 色综合婷婷| 国产福利91精品一区 | www.黄色片网站 | 国产精品手机播放 | 96久久欧美麻豆网站 | 久久精品99国产精品酒店日本 | avove黑丝 | 夜夜视频资源 | 最近更新好看的中文字幕 | 免费av网站在线看 | 国产精品视频资源 | 在线国产精品视频 | 69国产精品视频免费观看 | 欧美午夜精品久久久久 | 久久试看 | 亚洲国产精品电影在线观看 | 精品久久久久国产免费第一页 | 国产一级黄色av | 激情五月综合 | 日韩视频一区二区三区 | 国产精品一区二区在线看 | 国产91精品一区二区麻豆亚洲 | 人人干人人做 | 日韩欧美在线综合网 | 日韩r级在线 | 亚洲精品视频在线观看视频 | 99在线观看免费视频精品观看 | 麻豆视传媒官网免费观看 | 国产一级淫片免费看 | 国产精品久久久久久久久久新婚 | 国产一区二区在线影院 | 久久99久久99精品中文字幕 | 91亚洲精品在线观看 | 97人人澡人人爽人人模亚洲 | 福利视频导航网址 | 色久综合 | 99在线播放 | 日韩av播放在线 | 国产韩国日本高清视频 | 亚洲va欧洲va国产va不卡 | 国产一级片免费视频 | 婷婷色在线播放 | 日韩精品在线观看av | 久久久国产一区二区三区四区小说 | 98超碰在线观看 | 狠狠色噜噜狠狠狠狠2022 | 日韩视频免费在线 | 国产精品入口麻豆 | 二区三区在线观看 | 四虎免费在线观看 | 国产成人精品999 | 粉嫩av一区二区三区四区五区 | 91精选| 亚洲最新av在线 | 天天干人人插 | 在线不卡的av | 国产精品久久久久久av | 国产三级香港三韩国三级 | 久草资源在线 | 亚洲aⅴ乱码精品成人区 | 中文字幕日本在线 | www.亚洲视频.com| 91看片淫黄大片一级在线观看 | 97超碰人人干 | 亚洲免费精品一区二区 | 日韩理论电影在线观看 | 亚洲精品乱码久久久久v最新版 | 成年免费在线视频 | 免费日韩一区二区 | 91看毛片| 成人小视频在线观看免费 | 久久草网 | 在线观看一级片 | 国产福利中文字幕 | 亚洲美女精品区人人人人 | 在线免费黄色毛片 | 98涩涩国产露脸精品国产网 | 国产精品成久久久久 | 粉嫩av一区二区三区免费 | 亚洲欧美久久 | 国产精品亚洲片在线播放 | 不卡的一区二区三区 | 最新91在线视频 | 欧美成人视 | 国产在线精品区 | 91麻豆精品国产91久久久无限制版 | 国产国语在线 | 日韩中文在线视频 | 91视频高清| a亚洲视频| 国产一区欧美在线 | 国产一级久久久 | 五月婷婷影院 | 在线精品播放 | 日韩欧美视频二区 | 国产韩国日本高清视频 | 国产精品久久久久永久免费 | 国产剧情在线一区 | 国产精品二区在线 | av黄免费看| 国产麻豆视频免费观看 | 人人插人人草 | 青青河边草免费 | 国产精品岛国久久久久久久久红粉 | 中国一级片免费看 | 国产亚洲精品v | 色偷偷人人澡久久超碰69 | www.91成人| 精品国产乱码久久 | 色婷婷电影 | 亚洲九九 | 日韩在线观看中文字幕 | 色播激情五月 | 国产高清视频在线播放 | 天天艹天天爽 | 麻豆国产精品一区二区三区 | www.狠狠操.com | 成人av在线一区二区 | 91福利视频免费 | 在线蜜桃视频 | 97超视频在线观看 | 成人国产一区 | 精品色999 | 久久电影国产免费久久电影 | 国产精品999久久久 久产久精国产品 | 国产99久久久国产精品免费二区 | 九九在线免费视频 | 欧美乱大交 | 欧美精品一区二区免费 | 99在线观看精品 | 国产剧情av在线播放 | 成人av.com | 91理论电影| 天天天在线综合网 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩电影中文字幕在线 | 天堂av高清| 国产网站色 | 91看片在线播放 | 久久久 激情 | av在线免费观看黄 | 91久久精品日日躁夜夜躁国产 | 日韩精品一区二区三区在线播放 | 深爱开心激情 | a亚洲视频 | 久久噜噜少妇网站 | 精品久久久久久久久久久院品网 | 免费性网站 | 精品久久视频 | 美女视频黄是免费的 | 日本少妇久久久 | 天堂av免费 | 免费在线观看视频一区 | 综合网天天射 | 欧美精品免费在线 | 久久99精品久久久久婷婷 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 亚洲欧美日韩国产精品一区午夜 | 婷婷激情五月 | 在线观看视频国产 | www.久久爱.cn | 亚洲人在线视频 | 网站在线观看日韩 | 又色又爽的网站 | 久久亚洲国产精品 | 99久热在线精品视频观看 | 激情综合色综合久久 | 亚洲综合狠狠干 | 日韩久久精品一区二区三区 | 亚洲免费婷婷 | 2020天天干夜夜爽 | 在线观看中文字幕第一页 | 免费91麻豆精品国产自产在线观看 | 国产成人精品a | 久久精品—区二区三区 | 九九九九九九精品任你躁 | 丁香高清视频在线看看 | 韩国av三级 | 91福利专区| 欧洲黄色片| av成年人电影 | 国产精品丝袜久久久久久久不卡 | 特黄特黄的视频 | 超碰国产在线播放 | 91成人免费看 | 成人中文字幕在线 | 国产精品系列在线 | 久艹视频在线免费观看 | 97精品欧美91久久久久久 | 一区二区av | 亚洲成人黄| 欧美日韩免费视频 | 色偷偷88欧美精品久久久 | 四虎影视www| 日本高清中文字幕有码在线 | 久久精品一二三区白丝高潮 | 国产高清视频在线 | 国产在线日本 | 国产精品99久久久久久小说 | 成人在线免费视频观看 | 操操日 | 九九在线播放 | av在线一级 | 国产精品无av码在线观看 | 91视频a | 成人免费xxxxxx视频 | 国产无遮挡猛进猛出免费软件 | 99久久精品一区二区成人 | 国产成人精品在线 | 免费a级大片 | 亚洲乱亚洲乱妇 | 精品超碰 | 91女人18片女毛片60分钟 | 人人藻人人澡人人爽 | 国产午夜精品一区二区三区欧美 | 成年人在线观看视频免费 | 国产精品成人一区二区三区吃奶 | 成人午夜影院在线观看 | 日韩在线大片 | 狠狠色综合网站久久久久久久 | 成年人黄色大片在线 | 久久久毛片 | 精品在线一区二区三区 | 免费观看一级一片 | 91视频这里只有精品 | 97免费视频在线播放 | avv天堂| 久久在线视频精品 | 欧美色噜噜 | 九九久久久久99精品 | 女人18毛片a级毛片一区二区 | 久久蜜臀一区二区三区av | 亚洲激色| 91激情视频在线观看 | 日韩专区在线播放 | 亚洲国产影院av久久久久 | 手机在线小视频 | 久久久亚洲成人 | 亚洲高清av在线 | 免费网站色 | 免费观看久久久 | 国内精品一区二区 | 婷婷在线资源 | 国产不卡视频在线 | 毛片99 | 欧美日韩高清在线一区 | 国产精品ssss在线亚洲 | av在线a| 黄色免费高清视频 | 久久与婷婷 | 精品国产成人av在线免 | av福利在线免费观看 | 97国产在线播放 | 热久久电影| 女人18毛片a级毛片一区二区 | 久久久精品99 | 99精品国产99久久久久久97 | 看国产黄色片 | 在线播放国产一区二区三区 | 婷婷亚洲最大 | 精品字幕 | 国产成人久久久77777 | 欧美精品乱码久久久久 | 激情婷婷av| 亚洲免费成人av电影 | 亚洲 综合 国产 精品 | 精品国产诱惑 | 国产午夜精品视频 | 午夜精品久久久久久久99水蜜桃 | 久久免费播放视频 | 欧美黑人性猛交 | 精品在线视频一区二区三区 | 色福利网站 | 国产亚洲精品久久久久久久久久久久 | 国产精华国产精品 | 婷婷激情综合 | 九九热免费观看 | 国产免费叼嘿网站免费 | 日韩久久片 | 日韩网站在线看片你懂的 | 日韩精品视频网站 | 亚洲 欧美 综合 在线 精品 | 江苏妇搡bbbb搡bbbb | 99热这里只有精品免费 | 亚洲精品一区二区在线观看 | 91精品国产自产老师啪 | 欧美在线观看小视频 | 国产精品久久久久永久免费 | 日韩中文三级 | 最近2019好看的中文字幕免费 | 亚洲成人精品影院 | 丁香花五月 | 欧洲亚洲国产视频 | 久久激情综合 | 亚洲午夜久久久久 | 欧美精品久久天天躁 | 国产人成在线观看 | 色婷婷亚洲婷婷 | 成年人在线免费看视频 | 精品亚洲视频在线观看 | 成人黄大片视频在线观看 | 麻豆成人精品 | www.天天色 | 国产精品福利一区 | 亚洲精品大全 | 中文字幕在线国产精品 | 91中文在线观看 | 成人免费观看a | 久久精品99国产 | 精品成人a区在线观看 | 久久久影院一区二区三区 | 麻豆视频在线免费看 | 毛片永久免费 | sm免费xx网站 | 最近日本中文字幕 | 黄色福利视频网站 | 怡红院久久 | 91精品国产乱码久久 | 一级片色播影院 | 91久久在线观看 | 亚洲免费视频在线观看 | 亚洲午夜久久久综合37日本 | 日韩二区三区在线观看 | 精品国产伦一区二区三区观看体验 | 91精品一区在线观看 | 国产精品 亚洲精品 | 成人免费一区二区三区在线观看 | 日韩免费在线观看视频 | 日韩 精品 一区 国产 麻豆 | 日日夜夜草 | 日韩精品视| 精品国内自产拍在线观看视频 | 婷婷六月天天 | 在线观看岛国片 | 欧美在线1区 | 国产精品99久久久久的智能播放 | 精品福利国产 | 日韩精品免费在线播放 | 天天超碰 | 日韩电影中文字幕在线 | 久久午夜免费观看 | 天天爱天天草 | 亚洲做受高潮欧美裸体 | 性色av免费看 | 久久精品久久99精品久久 | 99久热在线精品视频 | 免费视频成人 | 一区二精品 | 日韩在线电影 | av女优中文字幕在线观看 | 欧美91片 | 中文字幕高清在线播放 | 色婷婷狠狠18 | 国产一级久久 | 色av资源网 | 日韩精品久久久久 | 伊人开心激情 | 欧美日韩亚洲精品在线 | 韩国精品一区二区三区六区色诱 | 狠狠成人 | 天堂va在线高清一区 | 婷婷久久一区 | 超级av在线 | 天天拍天天操 | 91桃色免费观看 | 激情网五月天 | 一级一片免费看 | 在线国产日本 | 亚洲国产激情 | 色网站在线看 | 久久国产热视频 | 91精品网站 | 349k.cc看片app | 亚洲免费视频观看 | 国产九九九九九 | 丁香在线观看完整电影视频 | 91精品区| 欧美人操人 | 九九日九九操 | 在线免费国产 | 一区二区三区在线免费 | 国产精品久久 | 欧美 日韩 国产 成人 在线 | 欧美日本不卡视频 | 99久久精品免费看国产四区 | 日韩av视屏在线观看 | 9999国产| a级国产乱理论片在线观看 伊人宗合网 | 国产精品国产三级国产专区53 | 久草在线视频看看 | 亚洲精品中文字幕在线 | 国产精品你懂的在线观看 | 精品国产伦一区二区三区免费 | 亚洲国内精品在线 | 在线观看中文字幕第一页 | 精品99999| 免费在线播放黄色 | 欧美黄在线 | 欧美激情在线看 | 国产精品av一区二区 | 国产精品第一 | 亚洲精品欧美成人 | h视频在线看 | 免费av黄色| 黄色aaaaa| 精品久久久久久国产 | 中文字幕 婷婷 | 精品亚洲免费 | www.com黄 | 天天操狠狠干 | 四虎影视国产精品免费久久 | 婷婷伊人综合亚洲综合网 | 四虎影视成人永久免费观看亚洲欧美 | 日韩欧美在线观看一区二区三区 | 日韩91av | av资源免费看 | a v在线视频| 久久精品国产一区二区三 | 在线国产日韩 | 九九久久精品 | 国产精品久久久一区二区 | av中文字幕在线免费观看 | 久久看看| 国产一线二线三线性视频 | 成人毛片在线观看视频 | 久久久伦理| 日韩v在线 | 精品国产乱码久久久久久天美 | 开心色婷婷 | 精品美女在线视频 | 成人免费视频网站在线观看 | 免费的黄色的网站 | 人人要人人澡人人爽人人dvd | 国产综合小视频 | 成人小电影在线看 | 国产精品理论片在线播放 | 亚洲国产精品成人精品 | 99久久精品视频免费 | 国产黄色成人av | 日韩久久久久久久久久 | 国产视频亚洲精品 | 免费国产黄线在线观看视频 | 在线a人v观看视频 | 国产精品国产三级国产不产一地 | 中文字幕在线观看第二页 | 手机在线小视频 | 91最新中文字幕 | 欧美激情综合色 | 国产精品18久久久久久久 | 欧美午夜视频在线 | 午夜精品久久一牛影视 | 天天视频亚洲 | 国产成人精品一区二三区 | 国产视频日本 | 久久久电影网站 | 狠狠狠狠狠狠天天爱 | 99电影456麻豆| 少妇超碰在线 | 久久激情五月丁香伊人 | 国偷自产中文字幕亚洲手机在线 | 99免费在线视频观看 | 欧美午夜久久久 | 日韩精品一区二区三区在线播放 | 在线不卡的av | 91丨九色丨蝌蚪丨老版 | 日韩有码中文字幕在线 | 久久久综合色 | 国产欧美高清 | 一级淫片a| 久久网站免费 | 日韩在线首页 | 国产在线观看免费观看 | 黄色影院在线观看 | 我要色综合天天 | 狠狠狠干狠狠 | 亚洲免费成人av电影 | 国产一级在线播放 | 亚洲精品欧美精品 | 91视频久久久 | 国产精品一区二区免费 | 欧美日韩精品区 | 欧美一区影院 | 黄污网 | 麻豆传媒在线免费看 | 日韩欧美视频在线免费观看 | 久久婷婷一区 | 国产亚洲精品久久久久久无几年桃 | www.黄色片网站 | 婷婷色网 | 98涩涩国产露脸精品国产网 | 成人免费一区二区三区在线观看 | 久草热视频 | 日韩精品高清不卡 | 蜜臀av一区 | 亚洲精品88欧美一区二区 | 992tv又爽又黄的免费视频 | 在线看91| 91热| 天天射日| 亚洲最大免费成人网 | 美女久久久久 | 又黄又刺激视频 | 香蕉视频网址 | 探花视频在线观看免费 | 午夜精品久久久久久中宇69 | 在线精品观看国产 | 亚洲视频在线播放 | 97碰碰精品嫩模在线播放 | 精品在线视频一区二区三区 | 免费美女av| 精品国产视频一区 | 国产精品视频最多的网站 | 免费在线精品视频 | 国产精品亚洲精品 | www.久久久久 | 精品福利网站 | 日本免费久久高清视频 | 五月天综合婷婷 | 丁香av在线 | 日韩精品久久久久久久电影99爱 | 超碰com | 欧美在线观看视频 | 在线国产精品一区 | 亚洲码国产日韩欧美高潮在线播放 | 国产99在线免费 | 五月天六月丁香 | 另类五月激情 | 99精品电影 | 超碰日韩在线 | 国产资源中文字幕 | 国产高清在线免费 | 日韩精品欧美精品 | 久草资源在线观看 | 国产美女久久 | av福利在线| 亚洲自拍偷拍色图 | 日本激情动作片免费看 | 日韩在线观看第一页 | 国产五月婷 | 国产精品1024| 亚洲成人精品在线 | 欧美二区视频 | 深爱婷婷激情 | 中文字幕丝袜 | 高清有码中文字幕 | 国产精品免费大片视频 | 成人小视频在线观看免费 | 久久精品国产第一区二区三区 | 国产成人精品综合久久久 | 精品国产一区二区在线 | 国产一级大片在线观看 | 亚洲精品国产精品国自产在线 | av黄免费看 | 天堂av在线免费 | 日本三级国产 | 国产一级免费在线 | а天堂中文最新一区二区三区 | 狠狠色丁香婷综合久久 | 国产中文a | 成人av在线资源 | 超碰97av在线 | 天天色 天天 | 国产精品免费成人 | 黄色小说在线免费观看 | 毛片网站在线看 | 精品国产视频在线 | 五月天免费网站 | 99在线精品观看 | 97视频精品 | 久久精品国产亚洲aⅴ | 日韩精品免费一区二区在线观看 | 午夜国产福利视频 | 最近中文字幕高清字幕在线视频 | 欧美在线a视频 | 亚洲a免费| 精品久久毛片 | 日韩一级片大全 | 美女黄频在线观看 | 在线观看免费福利 | 在线观看v片| 亚洲精品成人 | 久久久免费av | 91久久精品一区二区二区 | 午夜av大片 | 国产精品久久久久婷婷二区次 | 高清久久久 | 成人资源在线观看 | 91av网站在线观看 | 91亚洲精品久久久蜜桃网站 | 久久精品一区二区三区视频 | 欧美日韩精品影院 | 国产成人一区二区在线观看 | 国产精品四虎 |