導航:首頁 > APP軟體 > 微信的mp3時長獲取java

微信的mp3時長獲取java

發布時間:2025-03-20 14:13:19

A. UniApp開發H5接入微信登錄的全過程

在最近的uniapp開發過程中,遇到了H5調微信授權登錄的需求,這里記錄一下具體的實現過程。微信授權主要分為兩種類型:靜默授權和非靜默授權。其中,靜默授權僅能獲取用戶的openid,而非靜默授權則需要用戶手動點擊同意授權,可獲取用戶的openid、昵稱、頭像、性別等信息。

網頁授權的兩種scope的區別在於:使用snsapi_base發起的網頁授權主要用於獲取用戶openid,這種授權方式是靜默授權,用戶感知的是直接進入了回調頁。而使用snsapi_userinfo發起的網頁授權則是獲取用戶基本信息,這種授權需要用戶手動同意,無需關注即可獲取用戶信息。用戶管理類介面中的獲取用戶基本信息介面則需用戶關注公眾號後才能調用。

微信授權的流程包括:通過正則匹配請求地址中的參數獲取code,若沒有code則請求微信官方介面獲取包含code的回調鏈接,然後使用code換取openid及access_token等參數。最後,若scope為snsapi_userinfo,則可以通過access_token和openid拉取用戶信息。

具體實現中,前端通過正則匹配獲取code,若沒有code則跳轉到授權頁面,攜帶code的請求用於獲取openid和access_token。後端使用java實現,通過HTTP GET請求獲取access_token和openid。請求成功返回類似如下參數:access_token、expires_in、refresh_token、openid和scope。請求錯誤時返回錯誤碼和錯誤信息。

當網頁授權作用域為snsapi_userinfo時,可以通過access_token和openid拉取用戶信息,請求方法為http:GET(請使用https協議)。返回的JSON數據包包含用戶基本信息,如openid、nickname、sex、province、city、country等。錯誤時微信會返回錯誤碼和錯誤信息。

通過以上步驟,微信登錄的業務實現完畢。更多相關介面請參考微信開放文檔。

B. 使用Java開發微信公眾平台(二)——消息的接收與響應

本篇文章旨在深入講解如何使用Java語言開發微信公眾平台,特別是消息的接收與響應。在上一篇文章中,我們已學習了環境搭建與開發接入的基礎知識。那麼,本文將帶您深入了解如何接收和響應消息。

在微信的開發者文檔中,可以找到關於消息接收與響應的具體信息。點擊「消息管理」下的「接受普通消息」,您將學習到普通文本消息的接收與響應方法。微信會以XML格式發送消息,並在接收到消息後向開發者伺服器發送Post請求。

值得注意的是,微信伺服器在五秒內收不到響應會斷開連接,並嘗試重試三次,因此在開發過程中要確保伺服器能夠及時處理並回復請求。如果無法保證五秒內處理並回復,可以簡單回復空字元串,微信伺服器對此不做任何處理,並不會發起重試。

接下來,我們將通過創建文本消息的實例,來展示如何實現消息接收與響應。首先,打開上次編寫的Servlet,即處理微信請求的Servlet。在Post方法中,接收微信發送的XML內容。為了方便數據處理,可以新建兩個方法,將XML數據類型轉化為集合類型(如Map),反之,將對象類型轉化為XML字元串。

在這一部分,我們將使用dom4j和xstream庫來完成XML轉換。首先,需要在Util包下創建一個Message工具類。這里,我們將創建一個方法,將接收到的XML格式轉化為Map格式,藉助dom4j庫來實現此功能。隨後,創建另一個方法,將消息對象轉換為XML字元串,利用xstream庫來實現。

完成XML轉換方法後,回到Servlet中,實現消息接收與響應的功能。通過doPost方法,處理接收到的XML請求,並將請求內容轉換為Map對象。從Map中獲取相關參數,如接收用戶、發送用戶、消息類型、內容等。對於文本消息,可以創建一個TestMessage實體類,封裝消息信息,並編寫方法將其轉換為XML格式返回給微信公眾平台。

至此,您已成功實現文本消息的接收與響應。運行效果如下:用戶發送任意內容,將收到各種回復信息。

為了方便讀者參考,以下是相關代碼片段。請確保將相關庫正確導入,並根據需求調整代碼以適應您的項目。

Servlet中的doPost方法
java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String str = null;
try {
Map map = MessageUtil.xmlToMap(request);
String ToUserName = map.get("ToUserName");
String FromUserName = map.get("FromUserName");
String CreateTime = map.get("CreateTime");
String MsgType = map.get("MsgType");
String Content = map.get("Content");
String MsgId = map.get("MsgId");

if (MsgType.equals("text")) {
TestMessage message = new TestMessage();
message.setToUserName(FromUserName);
message.setFromUserName(ToUserName);
message.setMsgType("text");
message.setCreateTime(new Date().getTime());
message.setContent("您好," + FromUserName + "\n我是:" + ToUserName + "\n您發送的消息類型為:" + MsgType + "\n您發送的時間為:" + CreateTime + "\n我回復的時間為:" + message.getCreateTime() + "\n您發送的內容是:" + Content);
str = MessageUtil.objectToXml(message);
}
out.println(str);
} catch (Exception e) {
e.printStackTrace();
}
}

Message處理工具類
java
public class MessageUtil {
public static Map xmlToMap(HttpServletRequest request) throws IOException, DocumentException {
Map map = new HashMap>();
SAXReader reader = new SAXReader();
InputStream is = request.getInputStream();
Document doc = reader.read(is);
Element root = doc.getRootElement();
List list = root.elements();
for (Element e : list) {
map.put(e.getName(), e.getText());
}
is.close();
return map;
}

public static String objectToXml(TestMessage message) {
XStream xs = new XStream();
xs.alias("xml", message.getClass());
return xs.toXML(message);
}
}

TestMessage實體類
java
public class TestMessage {
private String ToUserName;
private String FromUserName;
private Long CreateTime;
private String MsgType;
private String Content;
private String MsgId;

// Getters and Setters
}

請確保在實際應用中調整代碼以適應您的項目需求,並參考微信開發者文檔獲取更多詳細信息。如有任何疑問或需要幫助,請隨時聯系我們。

閱讀全文

與微信的mp3時長獲取java相關的資料

熱點內容
為什麼光碟pe無法啟動不了系統文件 瀏覽:372
小米手機根目錄密碼文件是哪個 瀏覽:141
傳奇單機版185版本 瀏覽:611
華師大大數據研究生學費多少錢 瀏覽:658
編程人員需要哪些條件 瀏覽:212
ios開發與java開發區別 瀏覽:673
linux當前連接數 瀏覽:546
空心樓板怎麼安裝吊扇打孔數據 瀏覽:653
開數據線加工有哪些風險 瀏覽:707
一些app不知道如何購買怎麼辦 瀏覽:880
dnf525版本加點模擬器 瀏覽:181
vs2017dockerlinux 瀏覽:78
華途加密文件破解 瀏覽:331
小米4升級miui8順暢嗎 瀏覽:621
文件夾里的圖片批量導入wps 瀏覽:268
skinsharpvb代碼 瀏覽:40
驍龍820和蘋果a9gpu 瀏覽:721
伺服器網路要求 瀏覽:974
聲音應用程序 瀏覽:74
iphone3g越獄 瀏覽:393

友情鏈接