国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

30行代碼實(shí)現(xiàn)微信自動(dòng)回復(fù)機(jī)器人

lingdududu / 1614人閱讀

摘要:行代碼實(shí)現(xiàn)微信自動(dòng)回復(fù)機(jī)器人一寫(xiě)在前面今天下午又學(xué)到了另一種有趣的玩法微信自動(dòng)回復(fù)機(jī)器人。將返回消息返回給微信消息的發(fā)送人。以此實(shí)現(xiàn)將微信個(gè)人號(hào)變身為聊天機(jī)器人。

30行代碼實(shí)現(xiàn)微信自動(dòng)回復(fù)機(jī)器人 一、寫(xiě)在前面

今天下午又學(xué)到了itchat另一種有趣的玩法---微信自動(dòng)回復(fù)機(jī)器人。

程序很簡(jiǎn)單僅僅三十行代碼左右,實(shí)現(xiàn)了機(jī)器人自動(dòng)與你的微信好友聊天,下面是我的機(jī)器人小籠包跟自己微信好友聊天的截圖。

二、程序介紹

本程序通過(guò)itchat獲取微信的相關(guān)消息,將微信消息傳輸?shù)綑C(jī)器人接口(本程序使用的是圖靈),獲取機(jī)器人的返回消息。將返回消息返回給微信消息的發(fā)送人。以此實(shí)現(xiàn)將微信個(gè)人號(hào)變身為聊天機(jī)器人。

三、具體實(shí)現(xiàn)

安裝

itchat的安裝可以通過(guò)下面這行代碼

pip install itchat

登錄
itchat.auto_login() 這種方法將會(huì)通過(guò)微信掃描二維碼登錄,但是這種登錄的方式確實(shí)短時(shí)間的登錄,并不會(huì)保留登錄的狀態(tài),也就是下次登錄時(shí)還是需要掃描二維碼。

# 掃描二維碼登陸微信,實(shí)際上就是通過(guò)網(wǎng)頁(yè)版微信登陸
    itchat.auto_login()

如果加上hotReload==True,那么就會(huì)保留登錄的狀態(tài),至少在后面的幾次登錄過(guò)程中不會(huì)再次掃描二維碼,該參數(shù)生成一個(gè)靜態(tài)文件itchat.pkl用于存儲(chǔ)登錄狀態(tài)

itchat.auto_login(hotReload=True)

微信信息的發(fā)送
微信可以發(fā)送各類(lèi)消息,文本、圖片、文件等,下面是具體的方法的介紹。

itchat.send("Message Content", "toUserName")

該發(fā)送消息的函數(shù)需要兩個(gè)參數(shù),消息的內(nèi)容與接受者的UserName,即標(biāo)識(shí)符。
用下面的代碼舉一個(gè)小栗子,實(shí)現(xiàn)向文件助手發(fā)送信息。

import itchat

itchat.auto_login(hotReload=True)
itchat.send(u"測(cè)試消息發(fā)送", "filehelper")   
微信消息的獲取

itchat 將根據(jù)接受到的消息類(lèi)型尋找對(duì)應(yīng)的已注冊(cè)的方法。如果一個(gè)消息類(lèi)型沒(méi)有對(duì)應(yīng)的注冊(cè)方法, 該消息將會(huì)被舍棄。在運(yùn)行過(guò)程中也可以動(dòng)態(tài)注冊(cè)方法, 注冊(cè)方式與結(jié)果不變。注冊(cè)方法不帶具體對(duì)象注冊(cè), 將注冊(cè)為普通消息的回復(fù)方法.

    import itchat
    from itchat.content import *
    @itchat.msg_register(TEXT)   #這里的TEXT表示如果有人發(fā)送文本消息,那么就會(huì)調(diào)用下面的方法
    def simple_reply(msg):
        #這個(gè)是向發(fā)送者發(fā)送消息
        itchat.send_msg("已經(jīng)收到了文本消息,消息內(nèi)容為%s"%msg["Text"],toUserName=msg["FromUserName"])
        return "T reveived: %s" % msg["Text"]     #返回的給對(duì)方的消息,msg["Text"]表示消息的內(nèi)容

帶對(duì)象參數(shù)注冊(cè), 對(duì)應(yīng)消息對(duì)象將調(diào)用該方法,其中isFriendChat表示好友之間,isGroupChat表示群聊,isMapChat表示公眾號(hào)。

import itchat
from itchat.content import *

@itchat.msg_register(TEXT, isFriendChat=True, isGroupChat=True,isMpChat=True)
def text_reply(msg):
    msg.user.send("%s : %s" % (mst.type, msg.text))

消息類(lèi)型
向注冊(cè)方法傳入的 msg 包含微信返回的字典的所有內(nèi)容.itchat 增加 Text, Type(也就是參數(shù)) 鍵值, 方便操作。

itcaht.content 中包含所有的消息類(lèi)型參數(shù)例如圖片、語(yǔ)音、名片、分享等,也對(duì)應(yīng)不同的注冊(cè)參數(shù):

圖片對(duì)應(yīng)

itchat.content.PICTURE

語(yǔ)音對(duì)應(yīng)

itchat.content.RECORDING

名片對(duì)應(yīng)

itchat.content.CARD

其余的可以參考官方API
https://pypi.org/project/itchat/

import itchat

@itchat.msg_register(itchat.content.TEXT)
def print_content(msg):
    print(msg["Text"])

itchat.auto_login()
itchat.run()

通過(guò)運(yùn)行上面的代碼,實(shí)現(xiàn)基礎(chǔ)的文本信息的接收。

實(shí)現(xiàn)與圖靈機(jī)器人的交互

實(shí)現(xiàn)機(jī)器人有很多種方法,最簡(jiǎn)單的就是使用他人提供的接口。這里以圖靈機(jī)器人為例,演示這一功能。圖靈機(jī)器人簡(jiǎn)單而言就是以一定的規(guī)則給圖靈的服務(wù)器發(fā)送數(shù)據(jù)包(包含你對(duì)他說(shuō)的話)圖靈的服務(wù)器會(huì)以一定的規(guī)則給你返回?cái)?shù)據(jù)包(包含他回復(fù)你的話)

你需要一個(gè)Tuling Key來(lái)告訴圖靈服務(wù)器你有權(quán)和他對(duì)話。

18edce3ce905a4c1dbb965e6b35c3834d
2eb720a8970964f3f855d863d24406576
31107d5601866433dba9599fac1bc0083
471f28bf79c820df10d39b4074345ef8c

接下來(lái)需配置圖靈機(jī)器人

{
    "key"    : "TULING_KEY",
    "info"   : "YOUR_MSG",
    "userid" : "USERID",
}

下面使用圖靈機(jī)器人向好友發(fā)送了hello

#coding=utf8
import requests

apiUrl = "http://www.tuling123.com/openapi/api"
data = {
    "key"    : "8edce3ce905a4c1dbb965e6b35c3834d", # 如果這個(gè)Tuling Key不能用,那就換一個(gè)
    "info"   : "hello", # 這是我們發(fā)出去的消息
    "userid" : "wechat-robot", # 這里你想改什么都可以
}
# 我們通過(guò)如下命令發(fā)送一個(gè)post請(qǐng)求
r = requests.post(apiUrl, data=data).json()
# 讓我們打印一下返回的值,看一下我們拿到了什么
print(r)

完整代碼:

import requests
import itchat
KEY = "8edce3ce905a4c1dbb965e6b35c3834d"

def get_response(msg):
    # 這里實(shí)現(xiàn)與圖靈機(jī)器人的交互
    # 構(gòu)造了要發(fā)送給服務(wù)器的數(shù)據(jù)
    apiUrl = "http://www.tuling123.com/openapi/api"
    data = {
        "key" : KEY,
      "info" : msg,
      "userid" : "wechat-robot",
    }
    try:
        r = requests.post(apiUrl, data=data).json()
        # 字典的get方法在字典沒(méi)有"text"值的時(shí)候會(huì)返回None而不會(huì)拋出異常
        return r.get("text")
    # 為了防止服務(wù)器沒(méi)有正常響應(yīng)導(dǎo)致程序異常退出,這里用try-except捕獲了異常
    # 如果服務(wù)器沒(méi)能正常交互(返回非json或無(wú)法連接),那么就會(huì)進(jìn)入下面的return
    except:
        # 將會(huì)返回一個(gè)None
        return

# 這里實(shí)現(xiàn)微信消息的獲取
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
    # 為了保證在圖靈Key出現(xiàn)問(wèn)題的時(shí)候仍舊可以回復(fù),這里設(shè)置一個(gè)默認(rèn)回復(fù)
    defaultReply = "I received: " + msg["Text"]
    # 如果圖靈Key出現(xiàn)問(wèn)題,那么reply將會(huì)是None
    reply = get_response(msg["Text"])
    # a or b的意思是,如果a有內(nèi)容,那么返回a,否則返回b
    # 有內(nèi)容一般就是指非空或者非None,你可以用`if a: print("True")`來(lái)測(cè)試
    return reply or defaultReply

# 為了讓實(shí)驗(yàn)過(guò)程更加方便(修改程序不用多次掃碼),我們使用熱啟動(dòng)
itchat.auto_login(hotReload=True)
itchat.run()

itchat不僅僅能夠?qū)崿F(xiàn)自動(dòng)回復(fù),還有其他的相關(guān)功能比如群發(fā)助手,好友單刪檢測(cè),獲取微信好友信息等功能,后續(xù)會(huì)慢慢去體驗(yàn)各種玩法。

小提示:不要頻繁操作,否則會(huì)禁止登錄web微信。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/43109.html

相關(guān)文章

  • node打造微信個(gè)人號(hào)機(jī)器人

    摘要:是一款開(kāi)源的微信個(gè)人號(hào),進(jìn)行了一系列的封裝,提供簡(jiǎn)單好用的接口,然后開(kāi)發(fā)者可以在其之上進(jìn)行微信機(jī)器人的開(kāi)發(fā)。注意這行代碼實(shí)現(xiàn)了登錄微信個(gè)人號(hào)并打印出所收到的消息。大家可以根據(jù)自己的需要定制出強(qiáng)大的個(gè)人微信號(hào)機(jī)器人。 現(xiàn)在,日常生活已經(jīng)離不開(kāi)微信,本文將會(huì)拋磚引玉演示如何使用wechaty操作微信個(gè)人號(hào)做一些有意思的東西,可以實(shí)現(xiàn)自動(dòng)通過(guò)好友請(qǐng)求、關(guān)鍵詞回復(fù)、自動(dòng)拉群等功能。大大提高了社...

    xiaolinbang 評(píng)論0 收藏0
  • 效率倍增,PyCaret:一個(gè)開(kāi)源、低代碼的 Python 機(jī)器學(xué)習(xí)工具

    摘要:是一個(gè)開(kāi)源低代碼的機(jī)器學(xué)習(xí)庫(kù),可自動(dòng)執(zhí)行機(jī)器學(xué)習(xí)工作流。它是一種端到端的機(jī)器學(xué)習(xí)和模型管理工具,可以以指數(shù)方式加快實(shí)驗(yàn)周期并提高您的工作效率。與其他開(kāi)源機(jī)器學(xué)習(xí)庫(kù)相比,是一個(gè)替代的低代碼庫(kù),可用于僅用幾行代碼替換數(shù)百行代碼。 ...

    binta 評(píng)論0 收藏0
  • nodejs微信開(kāi)發(fā)---自動(dòng)回復(fù)實(shí)現(xiàn)

    摘要:上一篇接入指南這部分是實(shí)現(xiàn)簡(jiǎn)單的自動(dòng)回復(fù),當(dāng)然也是很大一部分功能的實(shí)現(xiàn)基礎(chǔ),這里使用了圖靈機(jī)器人的接口。的微信一年沒(méi)更新了如上圖,發(fā)送消息則會(huì)回復(fù)一個(gè)內(nèi)容一樣的消息,一個(gè)簡(jiǎn)單的自動(dòng)回復(fù)就實(shí)現(xiàn)了。 上一篇:接入指南這部分是實(shí)現(xiàn)簡(jiǎn)單的自動(dòng)回復(fù),當(dāng)然也是很大一部分功能的實(shí)現(xiàn)基礎(chǔ),這里使用了圖靈機(jī)器人的接口。效果圖如下: showImg(https://segmentfault.com/img...

    LeoHsiun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<