11月24日周四晚8點,GitChat團隊開啟了來自一位前端女技術工程師李佳芮的問答交流,以下是主持人小冰將交流過程重新整理,記錄下了分享者和用戶之間對微信機器人的交流精彩片段。
問:你能說說目前微信機器人能做什么,不能做什么?
答:Wechaty的實現原理,是監聽Web微信的所有內容,封裝成接口給開發者使用。所以原則上,只要能在Web微信上能實現的事情,微信機器人都可以做。注意我說的是Web微信,不是微信客戶端。微信在Web上閹割了很多功能,相比較,PC客戶端的功能豐富的多。所以搶紅包功能做不了。因為在Web微信里面,是無法識別到有紅包的事件的。還有,轉賬功能機器人也做不了。
問:機器人是PC端監聽瀏覽器然后調用微信Api,應用號是基于“微信OS”的“本地”app,這么解釋對么?
答:機器人是在監聽瀏覽器,但是和微信Api沒有任何關系,完全是Hack進去的。機器人更像是在解決運營中的機械化重復操作,希望在Chat的過程中,提供服務。
問:既然是Hack到Web微信的,會不會有一天被封殺了呢?
答:如果他強制封殺,肯定是有辦法的,但是我個人覺得可能性比較低。第一,封殺的話,技術是有成本的,微信也是要考慮投入產出比的;第二,Git上最少有20多個這樣的開源項目,而且好多都是幾年前就做好了,微信不可能不知道,而且從技術研究和Chatbot的應用研究層面的角度看,這個是有意義的;第三是,這件事如果沒有威脅到微信的生態,就不會封殺,不過之前可以批量刪除好友的功能就被封了。
PS:我倒是覺得,這個被封殺最大的可能性,是把你的個人微信號封了,之前我看過一個技術社區上有人說,他做了一個防撤回機器人,就是在有人撤回消息的時候用聊天機器人把撤回的消息原封不動發出來。然后就扔到群里讓大家玩了。但是因為沒有寫字數限制,群里發多長的消息,他都會原封不動的發出來,就構成了炸群。
微信就把這個號封了7天,不能給好友發信息,不能發朋友圈,但是可以給好友發紅包,然后紅包里面帶回復內容,我覺得也挺逗的。我有一次也因為沒有判斷消息是不是自己發的,然后測試修改群名稱,結果系統消息和自己發的消息混了,忽然群也不能用了。所以使用的時候,注意一下,比如限制字數啊,屏蔽bot自己發的消息之類的,用message.self()就可以了。
問:微信機器人跟微信官方近期推出的應用號是怎樣一個關系,如何結合?
答:微信機器人和官方近期推出的應用號是不一樣的應用場景。應用號,或者說小程序,是在微信的應用上提供一個入口為用戶提供服務,這樣可以免去下載app的苦惱,很多低頻場景的app很適合做小程序。而微信機器人,本質就是一個微信號,現階段主要是為了釋放人力,免去人在微信上做的很多機械性的工作,比如批量通過好友請求啊,比如拉人進群啊,或者批量刪好友。這個可能更類似于Chatbot,希望再chat的過程中提供服務。機器人除了做些機械操作,還可以在聊天頁面推送一些鏈接給好友,這個鏈接可以是小程序的鏈接,也可以是app的鏈接,也可以是公眾號。
問:機器人斷線概率高么?
答:從我自己使用的情況來看,Wechaty這個框架很穩定,但是網頁微信定期會把你踢下去,所以需要重新登錄。Wechaty有一個功能,就是通過wechaty.instance({ profile: ‘test’ }) 會把你的session信息存到一個test.wechaty.json的文件中,如果掉線了,會自動重新登錄,test可以隨便換名字哈。我現在長期在我的服務器上跑兩個機器人,基本上一周會掉一次,我在文章里介紹了server醬,是一個從服務器推報警信息到微信的工具,結合server醬,在logout和scan事件的時候加入一個推送,掉線以后會有提醒,如果session沒了也會把二維碼推給你,還是挺爽的,也不用怕掉線再去服務器上登錄了。
問:GitChat現在想用一個微信號實現自動拉人進群的功能(突破掃二維碼100人的限制),不知道Wechaty是不是最好的選擇?
答:我認為是很好的選擇,實際上我最開始使用Wechaty也單純是為了突破群二維碼100人限制。使用三個關鍵函數:在聊天頁面通過m.from() 獲取聯系人contact,通過room.find() 找到群,然后room.add(contact) 就可以實現自動拉人了。
問:微信機器人可以檢測自己是否還是某個聯系人的好友嗎?
答:可以的,Contact有一個Contact.findAll()的函數,返回一個Contact數組,會找到你所有的聯系人,然后遍歷這個數組,使用contact.say()給所有好友群發消息,判斷回復的類型和內容,回復消息的類型可以通過Message.type()獲取,如果返回的是10000就是系統消息,一旦判斷出返回的是一個“對方不是你好友”的系統消息,那們就判斷出這個聯系人不是好友了。
問:微信機器人不是走的微信接口去獲取數據么,在想一個找回群的需求,不知道是否可以實現?
答:機器人不是走的微信接口,不過你的要求可以實現,不過需要你常年登著,然后把你所有消息都存進去,這樣從登錄開始算起的所有內容都可以搜索。我之前做的自動拉人進群的功能,有個小點和你這個需求比較類似。這個人回復機器人暗號,機器人會拉他進去,如果這個人已經在群里了,機器人就會在群里@他一下,這樣這個群就在你的聊天界面最前面了。這樣有些人群多就可以通過這種方式找到某個沉寂已久的微信群了。
問:現在微信機器人可以處理個人微信號的很多事情,有考慮接下來如何設計機器人讓它更加智能化?
答:恩,有考慮。但是更多的希望,第一步先讓這個微信機器人更好的完成自動化的工作,就是說本來需要人做的重復性工作,比如拉群、自動回復、加人、一鍵群發等等,機器人都幫你先完成了,這個也是很多企業在微信社群運營中面臨的很大的困惑。有一句話說的特別好:“Machine should work, People should think” 。
我希望我的微信機器人,在第一步能把很多運營人員面臨的問題先解決了,讓他們更多的時間放在思考如何進行活動策劃、如何留存用戶,甚至如何進行商業變現。一方面希望幫助企業節約成本,實現讓一個運營人員管理上千個群和微信號,另外一方面,希望幫助企業釋放人力,讓運營人員從復雜機械化的操作中解放出來,做有創造性的東西。
人工智能方面,現在有一些機器人的平臺做的已經很好了,他們是專門研究這個的,做的比我們專業好多,每天就是有好多聰明絕頂的算法工程師在研究,智能化可以使用他們的接口,比如我之前用我的微信機器人接過圖靈機器人,效果還不錯。我更希望和做智能機器人的企業有合作,共同解決聊天或者社群運營過程中的繁瑣問題,或者說,我做的更多是一個應用層面的chatbot嘗試,以更少的成本探索更多需求并小成本迭代解決問題。
問:文中提到了好幾個實現微信機器人的類庫,你是怎樣比較最終選擇了Wehaty?
答:我當時確實對比了幾個不同的類庫,我選擇的原因很簡單,就是看是用什么語言實現的,因為我對JS比較熟悉,所以使用了Wechaty。其實選類庫的時候,我發現Python的庫是最早的,且相對比較最完善的。但是有兩點原因我沒有選擇,一是我對Python沒有JS熟悉, 二是Python的庫雖然早,但是接口封裝的不是很干凈。
JS的有這幾個,你們可以參考下哈:
Wechat4U:微信 Wechat web 網頁版接口的JavaScript實現,兼容Node和瀏覽器;
Weixinbot Nodejs:封裝網頁版微信的接口,可編程控制微信消息;
WechatBot:面向個人的微信Wechat機器人平臺 - 使用微信網頁版接口Wechat4u;
Wechat-user-bot:正在組裝中的微信機器人;
Hubot-WeChat Hubot:是一個具有真實微信號的機器人,可以自動回復信息到微信群和某聯系人,并能給維護者的微信自動發送Hubot在線狀態。
問:文章里提到教舞蹈做視頻,你覺得舞蹈給你帶來了哪些好處呢?
答:首先,舞蹈給我帶來了很多朋友,認識了工作之外的各種人,而且都是很有趣的人,我在生活中有的時候比較無趣,多和這些人在一起能讓我變得有趣一點。另外,當你有一個興趣愛好的時候,每周的生活過起來就會豐富多彩一點,因為我們拍攝的是系列視頻,你會有一個期待,就像追劇一樣,而你是劇中的主角或者編導,這種感覺是很美妙的。
最主要的一點,跳舞對我來說是一種運動方式,每周出一點汗是身體和心理的雙重放松,也能讓我更好的投入工作中,這種運動還有一個副產品,就是可以保持身材,對于姑娘來說,這個還是非常重要的。
問:桔子互動是提供微信運營服務的,是怎樣契機開始運營微信服務,以后想要如何發展呢?
我在研一的時候,公眾號剛剛火起來,一個機緣巧合,一個畢業的學長知道我在實驗室寫php,他的朋友正好有外包需求,所以他牽頭,找了幾個技術的同學開始接項目。后來索性在學校附近租了個工作室,每周大家都會到工作室里碰一下,一起做項目。隨著項目的同質化越來越嚴重,我們就嘗試著做了一個小平臺,將一些通用需求,比如簽到、填寫表單、微信墻、微信婚禮請柬等做成一個一個的模塊,然后內部使用,后來接開發接的多了,也開始嘗試著打包成服務,可能這就是一個契機吧。
后來我拿著我們做的婚禮請柬參加了創業比賽,還拿了風投,就去深圳做了婚慶O2O,結果因為線下資源和產品方向等原因失敗了,回北京之后就又重操舊業,做一些微信運營的項目。我們現在也會接一些H5的項目、網站的項目和內容運營相關的需求,但是現在這一塊已經成為一片紅海,利潤并不是很高。
最近我發現,微信個人號上有很多重復的工作,需要自動化,所以正在嘗試往這個方向轉,接下來我會把產品模塊化,希望可以幫助幫助更多企業在微信社群運營商提供自動化服務,幫助他們節約成本,釋放人力。
問:對于創業,你有什么想法可以和大家分享的,又有什么建議是想告訴想要創業的朋友的呢?
答:對于創業,從我這幾年走過的各種彎路來看,專注可能是最重要的。之前一直覺得自己精力充沛,有的時候覺得自己可以做很多東西,然后就會去做各種嘗試,但是所有的嘗試最好能在一個有限域里面,做的項目也一定要切分一塊比較垂直的領域,將這一塊做好再去迅速的規模化。
另外,創業就是一場生意,所以整個產品是一定要有商業邏輯在里面的,我最開始做婚慶O2O的時候,可能也是因為拿到了幾百萬的風投,團隊規模又不是很大,以為公司又不缺錢,所以就單純的想產品做好了,其他東西自然就來了,然后就會陷入悶頭做產品的窘況。甚至連如何產生現金流,如何盈利都沒有想的非常明白,就去做了。
所以現在我做的內容,也會盡量更加聚焦一點,希望在Chatbot的領域里面,從微信運營自動化入手,幫助企業和某些個人解決實際的運營自動化需求,然后盡量把產品打磨好做精。我希望對Chatbot有興趣的,可以一起聊聊,希望碰出一些好想法。
問:作為一名優秀的程序媛,有想要給其他程序媛或者想要成為程序媛的妹子一些建議么?
答:首先,就是不要害怕。桑德伯格有一本書叫《向前一步》,鼓勵女性追求自己的目標,其實我覺得這幾個字在程序世界中也很對。對很多姑娘來說,無論是不是技術出身,都會對程序有一種恐懼,比如總怕把服務器弄壞了,或者什么程序搞崩了。其實不然,去做就好了,大不了重新裝個系統,重新寫個代碼,不要因為害怕出錯而不敢做。包括現在,我有的時候也會有這種恐懼,其實應該自己克服的,程序里面很多東西,也像一層窗戶紙,向前一步,一捅破,你會發現程序的世界也沒有那么撲朔迷離。
另外,是當一大段代碼調不通,你也不知道什么問題的時候,好多女生會忽然覺得很絕望,其實有一個小竅門,可以把整個代碼分成幾個小片段,一個一個去調,就會捉到問題,很多大牛也是這樣去調程序的,但是有的時候,我們不敢去拆分,就會陷入很困惑的情況跳不出來。
最后,也是我最想說的,不是只有男生才可以駕馭程序,很多工作,不分男女,只分強弱,其實創業也是一樣。