使用UOS微信桌面版協議登錄,wechaty免費版web協議又可以用了


重磅通知

很高興能夠寫這篇文章通知大家Wechaty的web協議又能大放光彩了,如果之前你的微信提示不能登錄web端,那么這個更新將會是你的福音。因為現在的wechaty-puppet-wechat已經支持使用UOS微信桌面版協議登錄,趕快來嘗試一下吧。

如何使用

關鍵依賴:npm install wechaty-puppet-wechat --save

對現有代碼無任何侵入性,只是更新一下依賴即可

一、首先安裝最新的wechaty-puppet-wechat依賴和配置環境

npm install qrcode-terminal --save
npm install wechaty 
npm install wechaty-puppet-wechat --save // 這個依賴是關鍵
export WECHATY_PUPPET=wechaty-puppet-wechat // 這里也是關鍵,需要配置你使用的puppet

二、請保證你的puppet配置的是wechaty-puppet-wechat

如果你使用的是ipadlocal,又想體驗一下web協議,那么也需要按照一下配置進行

案例:

index.js


const { Wechaty } = require('wechaty');

const name = 'wechat-puppet-wechat';
let bot = '';
bot = new Wechaty({
  name, // generate xxxx.memory-card.json and save login data for the next login
});

//  二維碼生成
function onScan(qrcode, status) {
  require('qrcode-terminal').generate(qrcode); // 在console端顯示二維碼
  const qrcodeImageUrl = [
    'https://wechaty.js.org/qrcode/',
    encodeURIComponent(qrcode),
  ].join('');
  console.log(qrcodeImageUrl);
}

// 登錄
async function onLogin(user) {
  console.log(`貼心小助理${user}登錄了`);
  if (config.AUTOREPLY) {
    console.log(`已開啟機器人自動聊天模式`);
  }
  // 登陸后創建定時任務
  await initDay();
}

//登出
function onLogout(user) {
  console.log(`小助手${user} 已經登出`);
}

bot.on('scan', onScan);
bot.on('login', onLogin);
bot.on('logout', onLogout);
bot
  .start()
  .then(() => console.log('開始登陸微信'))
  .catch((e) => console.error(e));

按照以上配置,拿起你的手機掃碼即可,你會發現以前不能登錄的微信也可以登錄了,驚喜不,意外不。

常見問題

1、為什么我更新了最新依賴還是提示無法登錄web端微信?

請查看你項目的根目錄,是否存在wechaty-puppet-wechat.memory-card.json這樣的文件,如果有請把它刪除后重新執行即可,這個存儲的cookies
有可能已經過期(最新版本已經修復此問題)

2、這個puppet可以保證一直能繞過web登錄么?

目前看來是可以繞過web端的限制,但是不保證以后會變化

3、繞過這個限制會被微信發現封禁么?

目前采用的繞過方式其實是使用了UOS的桌面版微信請求頭,所以如果你不做違反微信協議的事情,大概率是沒問題的。如果你違反了微信規定,那就不知道了

更多問題后續會根據反饋繼續補充

原理

具體的實現原理可以參考這個issues ,代碼修改參見 https://github.com/wechaty/wechaty-puppet-wechat/pull/129

大概的意思就是UOS下的微信只是網頁版套了個electron,所以呢有大神就對比了一下請求頭,發現了只要在請求的地址上首先加一個?target=t就是這樣https://wx.qq.com/?target=t

然后在掃碼登陸后攔截 https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage 這個請求,並在請求頭上添加兩個固定的參數

extspam ='Gp8ICJkIEpkICggwMDAwMDAwMRAGGoAI1GiJSIpeO1RZTq9QBKsRbPJdi84ropi16EYI10WB6g74sGmRwSNXjPQnYUKYotKkvLGpshucCaeWZMOylnc6o2AgDX9grhQQx7fm2DJRTyuNhUlwmEoWhjoG3F0ySAWUsEbH3bJMsEBwoB//0qmFJob74ffdaslqL+IrSy7LJ76/G5TkvNC+J0VQkpH1u3iJJs0uUYyLDzdBIQ6Ogd8LDQ3VKnJLm4g/uDLe+G7zzzkOPzCjXL+70naaQ9medzqmh+/SmaQ6uFWLDQLcRln++wBwoEibNpG4uOJvqXy+ql50DjlNchSuqLmeadFoo9/mDT0q3G7o/80P15ostktjb7h9bfNc+nZVSnUEJXbCjTeqS5UYuxn+HTS5nZsPVxJA2O5GdKCYK4x8lTTKShRstqPfbQpplfllx2fwXcSljuYi3YipPyS3GCAqf5A7aYYwJ7AvGqUiR2SsVQ9Nbp8MGHET1GxhifC692APj6SJxZD3i1drSYZPMMsS9rKAJTGz2FEupohtpf2tgXm6c16nDk/cw+C7K7me5j5PLHv55DFCS84b06AytZPdkFZLj7FHOkcFGJXitHkX5cgww7vuf6F3p0yM/W73SoXTx6GX4G6Hg2rYx3O/9VU2Uq8lvURB4qIbD9XQpzmyiFMaytMnqxcZJcoXCtfkTJ6pI7a92JpRUvdSitg967VUDUAQnCXCM/m0snRkR9LtoXAO1FUGpwlp1EfIdCZFPKNnXMeqev0j9W9ZrkEs9ZWcUEexSj5z+dKYQBhIICviYUQHVqBTZSNy22PlUIeDeIs11j7q4t8rD8LPvzAKWVqXE+5lS1JPZkjg4y5hfX1Dod3t96clFfwsvDP6xBSe1NBcoKbkyGxYK0UvPGtKQEE0Se2zAymYDv41klYE9s+rxp8e94/H8XhrL9oGm8KWb2RmYnAE7ry9gd6e8ZuBRIsISlJAE/e8y8xFmP031S6Lnaet6YXPsFpuFsdQs535IjcFd75hh6DNMBYhSfjv456cvhsb99+fRw/KVZLC3yzNSCbLSyo9d9BI45Plma6V8akURQA/qsaAzU0VyTIqZJkPDTzhuCl92vD2AD/QOhx6iwRSVPAxcRFZcWjgc2wCKh+uCYkTVbNQpB9B90YlNmI3fWTuUOUjwOzQRxJZj11NsimjOJ50qQwTTFj6qQvQ1a/I+MkTx5UO+yNHl718JWcR3AXGmv/aa9rD1eNP8ioTGlOZwPgmr2sor2iBpKTOrB83QgZXP+xRYkb4zVC+LoAXEoIa1+zArywlgREer7DLePukkU6wHTkuSaF+ge5Of1bXuU4i938WJHj0t3D8uQxkJvoFi/EYN/7u2P1zGRLV4dHVUsZMGCCtnO6BBigFMAA='
client-version' = '2.0.0', 

這樣就可以完美使用桌面版協議了,真的是非常感謝 @Luv Letter 的解釋和 @artxia 的chrome插件代碼讓我有機會為wechaty-puppet-wechat添磚加瓦

快速體驗

如果想快速體驗Wechay的完整功能,以及可視化配置功能,可以關注我的 《微信每日說》《智能微秘書》 項目,以上項目均已更新最新版web協議,全部支持web登錄。

歷史文章

本文由博客一文多發平台 OpenWrite 發布!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM