微信是一款廣受歡迎的即時通訊軟件,為了方便用戶在Mac電腦上也能使用微信,微信團隊推出了Mac版微信。本文將主要講解微信mac版歷史版的完整代碼示例以及使用方法。
一、下載微信mac版歷史版
在官網上下載微信mac版,我們可以得到一個.dmg的安裝文件。打開文件並進行安裝後,我們就可以使用微信了。
二、連接微信API接口
要想使用微信API接口,我們首先需要在微信公眾平台進行開發者認證,獲取相應的接口權限。認證過後,在接口權限中可以獲取到一組WebSocket鏈接地址。我們需要使用WebSocket連接到該地址,使用socket.io庫來進行連接。
接下來是連接代碼示例:
const io = require('socket.io-client'); const WebSocket = require('ws'); const uuid = require('uuid'); const Qrterminal = require('qrcode-terminal'); const md5 = require('md5'); const API = 'wss://web.wechat.com' let ioInst = null; let connectFlag = false; let uuidKey; let ws; function startWechat() { ws.on('open', () => { console.log('webSocket connect success') connectFlag = true; ioInst = io(API, {transports: ['websocket']}); ioInst.on('connect', () => { console.log('socket io connect success') }) ioInst.on('disconnect', () => { console.log('socket io disconnect') }) }) ws.on('message', (data) => { if (data.indexOf('wx2.qq.com/cgi-bin/mmwebwx-bin/webwxpushloginurl') > 0) { console.log('uuid getted:', data) uuidKey = data.match(/uuid=.+/)[0] Qrterminal.generate(API + '/qrcode/' + uuidKey.slice(5)); } else if (data.indexOf('window.code=') === 0) { const code = +data.match(/window.code=(\d+);/)[1] switch (code) { case 201: { console.log('scan success,請在手機上確認登錄') break; } case 200: { console.log('login success') const currentUserName = data.match(/(.*?)<\/skey>/)[1] break; } case 408: { console.log('login timeout') break; } default: break; } } }) ws.on('close', () => { console.log('webSocket disconnect') ioInst && ioInst.disconnect() connectFlag = false; }) ws.on('error', (err) => { console.log('webSocket error', err) }) } function startWebSocket() { return new Promise((resolve, reject) => { ws = new WebSocket('wss://webpush2.weixin.qq.com/cgi-bin/mmwebwx-bin/synccheck') ws.on('error', (e) => { console.log('webSocket error', e); reject(-1); }); ws.on('open', () => { console.log('webSocket connect success'); resolve(0); }); ws.on('message', (data) => { console.log(`webSocket receive message: ${data}`); }); ws.on('close', () => { console.log('webSocket disconnect'); }); }); } function uuidFunction() { return new Promise((resolve, reject) => { if (connectFlag) { const clientMsgId = Date.now() * 1000 + Math.floor(Math.random() * 1000 + 1); const data = { "BaseRequest": { "Uin": "", "Sid": "", "Skey": "", "DeviceID": "e225488245189445" }, "Code": 3, "FromUserName": "", "ToUserName": "", "ClientMsgId": clientMsgId.toString() } ioInst.emit('newlogin', data, (response) => { uuidKey = response.baseResponse.redirectUrl.split('uuid=')[1] console.log(`wxuuid: ${uuidKey}`); startWebSocket().then(() => { check(); }); }) setTimeout(() => { reject('timeout') }, 30000) } else { reject('connectFlag is false') } }) } function check() { setInterval(() => { if (connectFlag) { ws.send('2') } else { console.log('check error:connectFlag is false') clearInterval() } }, 5000) } startWebSocket().then(() => { console.log('webSocket connect success'); startWechat(); uuidFunction(); });
三、發送文本消息
與服務器的WebSocket連接成功後,我們就可以發送文本消息給其他微信用戶或者群組了。發送文本消息需要以下幾個步驟:
- 獲取消息發送的toUserName和LocalID
- 構建消息體
- 將消息體發送給服務器
下面是發送文本消息的代碼示例:
const toUserName = '@XXXXX'; const localID = Date.now().toString() + Math.random().toString().slice(2, 7); const text = { Type: 1, Content: '你好,世界!', FromUserName: '你的微信號', ToUserName: toUserName, LocalID: localID, ClientMsgId: localID }; ioInst.emit('message', text, (response) => { console.log(response); });
四、小標題4
其他的功能也均可以通過WebSocket與服務器進行交互來實現。
五、總結
本文主要講解了在Mac電腦上使用微信的方法以及微信API接口的使用。同時,也展示了一些基本的代碼示例,供大家參考使用。
原創文章,作者:TGZTY,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/374528.html