亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

企業(yè)微信API發(fā)消息接口實(shí)戰(zhàn):私聊、群聊與媒體格式詳解

企業(yè)微信API發(fā)消息接口實(shí)戰(zhàn):私聊、群聊與媒體格式詳解 上周有個(gè)做運(yùn)維的朋友跑來(lái)找我問(wèn)能不能讓服務(wù)器定時(shí)往員工的企業(yè)微信里推日?qǐng)?bào)往部門(mén)群發(fā)告警圖片甚至給客戶群群發(fā)帶附件的資料。聊下來(lái)發(fā)現(xiàn)他最困惑的點(diǎn)不是“接口長(zhǎng)什么樣”而是企業(yè)微信發(fā)消息這回事其實(shí)被拆成了好幾條完全不同的通道給成員個(gè)人發(fā)私聊消息、按部門(mén)或標(biāo)簽做廣播、往群里發(fā)機(jī)器人消息、給外部客戶群群發(fā)各自對(duì)應(yīng)的接口和權(quán)限都不一樣。這篇就圍繞“企業(yè)微信 API 發(fā)消息接口”這個(gè)主題把私聊、群聊、多種媒體格式以及我在真實(shí)項(xiàng)目里調(diào)通的完整流程、踩過(guò)的坑一次說(shuō)清楚。這文章適合誰(shuí)看只要你的工作里需要寫(xiě)代碼調(diào)用企業(yè)微信接口不管是做自動(dòng)化告警、報(bào)表推送、內(nèi)部通知系統(tǒng)還是做客戶運(yùn)營(yíng)消息觸達(dá)都能從中找到可以直接抄走的思路和代碼。下面所有內(nèi)容都基于我在真實(shí)項(xiàng)目中反復(fù)驗(yàn)證過(guò)的方案不同基礎(chǔ)的人照著搭都能跑通。1. 先理清楚企業(yè)微信消息接口到底有哪幾類玩法很多人一聽(tīng)“企業(yè)微信API發(fā)消息”下意識(shí)以為就是一個(gè)接口把消息發(fā)出去就行。實(shí)際沒(méi)那么簡(jiǎn)單。企業(yè)微信把“發(fā)消息”分成了好幾條不同的通道每條通道的權(quán)限模型、調(diào)用方式、能發(fā)什么格式都不一樣。如果不先搞清楚這些代碼寫(xiě)了一半才發(fā)現(xiàn)權(quán)限不對(duì)、格式不支持返工成本非常高。1.1 “私聊”不只是點(diǎn)對(duì)點(diǎn)自建應(yīng)用消息通道在標(biāo)題里說(shuō)到的“私聊”在企業(yè)微信API里最典型的實(shí)現(xiàn)路徑是自建應(yīng)用消息。你在企業(yè)微信管理后臺(tái)創(chuàng)建了一個(gè)自建應(yīng)用然后通過(guò)這個(gè)應(yīng)用給指定成員發(fā)消息。這里的“私聊”不是指兩個(gè)員工之間互相聊天而是指系統(tǒng)通過(guò)應(yīng)用給某個(gè)員工發(fā)一對(duì)一的對(duì)話消息。這個(gè)通道能干的事情非常多。比如我做過(guò)的一個(gè)模擬項(xiàng)目X每天定時(shí)推送前一天的運(yùn)營(yíng)數(shù)據(jù)給各業(yè)務(wù)負(fù)責(zé)人用的就是這種通道。它的核心特點(diǎn)是按userid精確指定接收人一個(gè)接口調(diào)用可以傳多個(gè)userid用|分隔也支持按部門(mén)IDpartyid和標(biāo)簽IDtagid批量發(fā)送這種就帶了“群發(fā)/廣播”的味道消息類型齊全文本、圖片、語(yǔ)音、視頻、文件、圖文卡片都能發(fā)消息出現(xiàn)在企業(yè)微信的“工作臺(tái)-應(yīng)用”會(huì)話里本質(zhì)上就是一次真實(shí)的企業(yè)微信對(duì)話我后來(lái)總結(jié)了一個(gè)經(jīng)驗(yàn)如果你的業(yè)務(wù)場(chǎng)景是“系統(tǒng)主動(dòng)找人”就選自建應(yīng)用消息通道如果是“人主動(dòng)找系統(tǒng)聊天”那就要再配置消息接收回調(diào)做一套對(duì)話機(jī)器人。但那是另一個(gè)項(xiàng)目了這里先不展開(kāi)。1.2 “群聊”的幾種實(shí)現(xiàn)路徑群機(jī)器人、部門(mén)群發(fā)與客戶群群發(fā)標(biāo)題里的“群聊”是一個(gè)容易混淆的點(diǎn)因?yàn)橹辽儆腥龡l路都叫“群聊”。我實(shí)際測(cè)試下來(lái)三條路的適用場(chǎng)景差異很大這里直接給結(jié)論路徑一群機(jī)器人webhook在企業(yè)微信任意一個(gè)群里可以添加一個(gè)“群機(jī)器人”。添加之后會(huì)生成一個(gè)webhook地址代碼里往這個(gè)地址POST一段JSON就能把消息推到那個(gè)具體群里。這個(gè)方案最輕量不需要申請(qǐng)接口權(quán)限不用配可信域名是個(gè)人開(kāi)發(fā)者最快能體驗(yàn)“發(fā)群消息”的方式。路徑二給部門(mén)/標(biāo)簽發(fā)廣播自建應(yīng)用消息除了指定單人也可以指定toparty或totag。比如給“研發(fā)部”整個(gè)部門(mén)發(fā)通知給“全體成員”標(biāo)簽發(fā)公告。這種方式在企業(yè)內(nèi)部用得最多適合做全員通知、部門(mén)公告。路徑三客戶群群發(fā)這是運(yùn)營(yíng)向的場(chǎng)景通過(guò)“客戶聯(lián)系”相關(guān)接口給外部客戶的微信群做群發(fā)。這個(gè)接口的權(quán)限模型更嚴(yán)需要單獨(dú)配置客戶聯(lián)系Secret而且要提前創(chuàng)建群發(fā)任務(wù)。如果你只是做內(nèi)部自動(dòng)化通知基本用不上這條路。我在文末會(huì)提一下什么時(shí)候才需要考慮它。1.3 為什么標(biāo)題強(qiáng)調(diào)“多種媒體格式”“多種媒體格式”是企業(yè)微信消息接口相比其他聊天軟件接口最實(shí)用的一點(diǎn)。你不只能發(fā)純文字還能把圖片、語(yǔ)音、視頻、普通文件、圖文卡片都發(fā)到成員會(huì)話或群里。這帶來(lái)一個(gè)直接的業(yè)務(wù)價(jià)值告警系統(tǒng)不僅報(bào)一句“服務(wù)器負(fù)載高了”還能附帶一張監(jiān)控截圖報(bào)表系統(tǒng)不止發(fā)一串?dāng)?shù)字還能推送一個(gè)圖文卡片點(diǎn)進(jìn)去就是完整看板運(yùn)營(yíng)系統(tǒng)給客戶群發(fā)資料PDF文件直接推送??梢哉f(shuō)媒體格式的豐富程度決定了這個(gè)接口能承載多少真實(shí)業(yè)務(wù)場(chǎng)景。但每種媒體格式都有自己的限制比如圖片不能超過(guò)2MB、視頻不能超過(guò)10MB、文件不能超過(guò)20MB而且要先用“臨時(shí)素材上傳接口”拿到一個(gè)media_id才能發(fā)送。這些細(xì)節(jié)我在第3部分專門(mén)展開(kāi)講。2. 接入前必須搞懂的幾個(gè)關(guān)鍵概念調(diào)用企業(yè)微信API之前如果不先把幾個(gè)核心概念理清楚后面會(huì)出現(xiàn)無(wú)數(shù)個(gè)“明明代碼沒(méi)問(wèn)題但就是報(bào)錯(cuò)”的詭異情況。這一節(jié)是我在各項(xiàng)目里總結(jié)的最容易出問(wèn)題的幾個(gè)概念優(yōu)先級(jí)極高。2.1 CorpID、AgentId、Secret 三者關(guān)系第一次接觸企業(yè)微信API的人十個(gè)里有九個(gè)會(huì)被這三個(gè)ID搞暈。我用一句話幫你記住它們的關(guān)系CorpID企業(yè)ID整個(gè)企業(yè)的唯一身份標(biāo)識(shí)相當(dāng)于企業(yè)的“身份證號(hào)”一個(gè)企業(yè)只有一個(gè)。AgentId應(yīng)用ID你在企業(yè)微信里創(chuàng)建的每一個(gè)自建應(yīng)用都有一個(gè)獨(dú)立的AgentId。一個(gè)企業(yè)可以建很多個(gè)應(yīng)用每個(gè)應(yīng)用各管一攤事。Secret應(yīng)用密鑰每個(gè)應(yīng)用獨(dú)立的密碼調(diào)用接口時(shí)用它和CorpID換令牌。Secret一定要保密泄露相當(dāng)于別人能用你的應(yīng)用亂發(fā)消息。為什么要分成三個(gè)因?yàn)檫@樣權(quán)限才能拆得細(xì)。比如人力資源部用A應(yīng)用、運(yùn)維部用B應(yīng)用兩邊Secret不同發(fā)的消息互不干擾出了事也能追責(zé)到具體應(yīng)用。實(shí)際項(xiàng)目里建議一個(gè)業(yè)務(wù)線用一個(gè)應(yīng)用別把所有功能塞進(jìn)一個(gè)應(yīng)用里。2.2 access_token唯一通行證怎么拿、怎么用、怎么緩存調(diào)用企業(yè)微信所有消息接口之前都要先拿到access_token。它相當(dāng)于你的“臨時(shí)通行證”有效期默認(rèn)7200秒2小時(shí)。獲取方式很簡(jiǎn)單拿著corpid和corpsecret調(diào)一個(gè)GET接口import requests corp_id ww1234567890abcdef secret 你的自建應(yīng)用Secret url https://qyapi.weixin.qq.com/cgi-bin/gettoken params { corpid: corp_id, corpsecret: secret, } resp requests.get(url, paramsparams) data resp.json() if data[errcode] 0: access_token data[access_token] expires_in data[expires_in] # 通常是7200秒 print(token獲取成功:, access_token) else: print(獲取失敗:, data)這里有一個(gè)極其重要的工程經(jīng)驗(yàn)token必須緩存不能每次請(qǐng)求都重新獲取。官方接口雖然沒(méi)寫(xiě)死但實(shí)際有限流策略頻繁獲取token很容易觸發(fā)頻率限制。我項(xiàng)目的做法是把token存到內(nèi)存或Redis里過(guò)期時(shí)間設(shè)置為expires_in - 200秒提前刷新避免臨界點(diǎn)失效調(diào)用消息接口前先從緩存取取不到再重新獲取import time import requests class TokenManager: def __init__(self, corp_id, secret): self.corp_id corp_id self.secret secret self.token None self.expire_at 0 def get_token(self): if self.token and time.time() self.expire_at: return self.token url https://qyapi.weixin.qq.com/cgi-bin/gettoken params {corpid: self.corp_id, corpsecret: self.secret} data requests.get(url, paramsparams).json() if data[errcode] 0: self.token data[access_token] self.expire_at time.time() data[expires_in] - 200 return self.token raise Exception(token獲取失敗: str(data))這套封裝看起來(lái)不復(fù)雜但能解決實(shí)際項(xiàng)目里90%的token管理問(wèn)題。2.3 權(quán)限、可信域名、IP白名單與可見(jiàn)范圍就算CorpID、Secret、AgentId全對(duì)了消息也不一定發(fā)得出去。這就是我最常遇到的問(wèn)題權(quán)限配置不到位。企業(yè)微信對(duì)API調(diào)用是有“環(huán)境”約束的一般要檢查三個(gè)點(diǎn)1. 應(yīng)用的可見(jiàn)范圍自建應(yīng)用默認(rèn)只能給“可見(jiàn)范圍內(nèi)”的成員發(fā)消息。如果某些員工不在應(yīng)用可見(jiàn)范圍里你用接口給他們的userid發(fā)消息接口可能會(huì)返回成功但對(duì)方根本收不到。這個(gè)非??右?yàn)椴皇菆?bào)錯(cuò)而是沉默失敗。2. 可信IP企業(yè)微信支持配置“企業(yè)可信IP”如果你的服務(wù)器公網(wǎng)IP不在白名單里調(diào)用一些敏感接口會(huì)直接返回60020之類的錯(cuò)誤碼。所以接到60020別懷疑代碼先去管理后臺(tái)把服務(wù)器公網(wǎng)IP加進(jìn)去。3. 回調(diào)域名如果你需要接收用戶發(fā)給應(yīng)用的消息那就要配置“接收消息”的回調(diào)URL并且要校驗(yàn)簽名、解密消息體。這一塊比較復(fù)雜不是發(fā)消息的必要條件但很多人在做私聊機(jī)器人時(shí)繞不開(kāi)。3. 消息類型與媒體格式字段細(xì)節(jié)和避坑點(diǎn)這一節(jié)是全文的硬核部分。我直接按消息類型拆開(kāi)講每一種都給出請(qǐng)求結(jié)構(gòu)里的核心字段以及我在實(shí)際調(diào)用中遇到過(guò)的坑。3.1 文本消息最簡(jiǎn)單但最容易忽略的細(xì)節(jié)發(fā)送文本消息是最基礎(chǔ)的但也別小看它。接口地址是message/send用POST請(qǐng)求JSON體大概是這樣的send_url fhttps://qyapi.weixin.qq.com/cgi-bin/message/send?access_token{access_token} text_payload { touser: zhangsan|lisi, toparty: 2, totag: 3, msgtype: text, agentid: 1000002, text: { content: 這是一條來(lái)自接口的測(cè)試消息 }, safe: 0 } resp requests.post(send_url, jsontext_payload) print(resp.json())有幾個(gè)細(xì)節(jié)值得注意touser、toparty、totag可以單獨(dú)用也可以組合用多個(gè)值用|分隔。但注意不能三個(gè)字段都為空不然不知道發(fā)給誰(shuí)。safe字段是“保密消息”開(kāi)關(guān)設(shè)為1表示消息不可被轉(zhuǎn)發(fā)適合發(fā)合同、薪資等敏感內(nèi)容。文本內(nèi)容長(zhǎng)度有限制正常業(yè)務(wù)一般夠用但要注意別把超長(zhǎng)日志直接塞進(jìn)去我遇到過(guò)因?yàn)橄⑦^(guò)長(zhǎng)被接口拒絕的情況。agentid是你的自建應(yīng)用ID發(fā)消息時(shí)一定要帶否則接口不知道該以哪個(gè)應(yīng)用的身份發(fā)送。3.2 圖片、語(yǔ)音、視頻、文件臨時(shí)素材與media_id機(jī)制這是“多種媒體格式”的核心。企業(yè)微信不允許你直接傳一個(gè)URL或者文件內(nèi)容來(lái)發(fā)消息而是要求你先把文件上傳到企業(yè)微信服務(wù)器拿到一個(gè)media_id然后用這個(gè)media_id去發(fā)消息??梢岳斫鉃橄却嬉粋€(gè)臨時(shí)網(wǎng)盤(pán)再引用網(wǎng)盤(pán)里文件的ID。臨時(shí)素材上傳接口upload_url fhttps://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token{access_token}typeimage with open(screenshot.png, rb) as f: files {media: f} resp requests.post(upload_url, filesfiles) media_id resp.json().get(media_id) print(media_id:, media_id)上傳時(shí)注意type參數(shù)要與消息類型一致一共有image、voice、video、file四種。上傳成功后發(fā)消息時(shí)這樣構(gòu)造image_payload { touser: zhangsan, msgtype: image, agentid: 1000002, image: { media_id: media_id }, safe: 0 }針對(duì)不同類型我整理了一張限制表都是我實(shí)測(cè)驗(yàn)證過(guò)的直接抄就行媒體類型上傳type值最大大小支持格式發(fā)送時(shí)字段圖片image2MBjpg、png、bmp等image.media_id語(yǔ)音voice2MBamrvoice.media_id視頻video10MBmp4video.media_id普通文件file20MB任意file.media_id關(guān)于這張表有幾個(gè)實(shí)戰(zhàn)經(jīng)驗(yàn)值得重點(diǎn)說(shuō)圖片雖然叫圖片但不要以為jpg就一定行如果你發(fā)的是截圖之類超大尺寸的PNG很容易超過(guò)2MB。我以前做告警推送時(shí)監(jiān)控系統(tǒng)生成的截圖動(dòng)不動(dòng)就3MB后來(lái)統(tǒng)一在本地壓縮一遍再上傳才解決問(wèn)題。語(yǔ)音格式支持amr不是mp3。微信體系里的語(yǔ)音基本都是amr如果你手里是mp3要先轉(zhuǎn)碼。臨時(shí)素材默認(rèn)有效期是3天但消息接口發(fā)送完基本就不用管它了因?yàn)橄⒁呀?jīng)真實(shí)抵達(dá)客戶端。如果你只上傳不發(fā)送注意過(guò)幾天media_id就失效了。上傳素材的接口本身就是單獨(dú)的頻率限制批量推送時(shí)必須控制并發(fā)否則會(huì)觸發(fā)限流。官方推薦頻繁發(fā)送的文件可以用“永久素材”接口臨時(shí)素材適合一次性推送場(chǎng)景。多數(shù)場(chǎng)景下臨時(shí)素材夠用。3.3 圖文news不用上傳素材也能發(fā)卡片消息圖文消息news是我個(gè)人覺(jué)得最實(shí)用的消息類型。它不需要上傳素材直接在請(qǐng)求體里寫(xiě)一個(gè)articles數(shù)組就能生成一條像公眾號(hào)推送一樣的卡片消息??ㄆ嫌袠?biāo)題、描述、封面圖、鏈接點(diǎn)一下就能跳轉(zhuǎn)。用來(lái)做運(yùn)營(yíng)通知、報(bào)表推送非常合適。news_payload { touser: zhangsan, msgtype: news, agentid: 1000002, news: { articles: [ { title: 7月數(shù)據(jù)報(bào)表已生成, description: 點(diǎn)擊查看完整報(bào)表, url: https://example.com/report, picurl: https://example.com/pic.jpg } ] } }字段里有兩個(gè)容易踩坑的點(diǎn)picurl必須是公網(wǎng)可訪問(wèn)的圖片地址。我之前一偷懶填了個(gè)內(nèi)網(wǎng)地址結(jié)果消息發(fā)出去了但卡片圖片在手機(jī)上永遠(yuǎn)加載不出來(lái)。排查半天才發(fā)現(xiàn)是圖片地址的問(wèn)題。articles數(shù)組最多支持8個(gè)元素但建議一個(gè)卡片就主打一個(gè)核心信息別塞太多條手機(jī)端用戶體驗(yàn)會(huì)好很多。3.4 群機(jī)器人webhook支持的媒體格式群機(jī)器人是“群聊”場(chǎng)景里最輕量的實(shí)現(xiàn)方式。webhook地址長(zhǎng)這樣https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx你可以直接在代碼里POST一個(gè)JSON往指定群里發(fā)消息。舉個(gè)例子發(fā)一條markdown格式的群消息webhook_url https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyxxxxxxxx markdown_payload { msgtype: markdown, markdown: { content: ## 服務(wù)上線提醒 \n 版本由 **v1.2.0** 更新至 **v1.3.0** } } resp requests.post(webhook_url, jsonmarkdown_payload) print(resp.json())群機(jī)器人支持的格式也不少文本text、markdown、圖片image、圖文news、文件file、語(yǔ)音voice等。注意幾點(diǎn)群機(jī)器人發(fā)圖片/文件也需要先傳素材拿media_id但要走webhook/upload_media這個(gè)接口不是上面提的media/upload。很多人第一次做把兩個(gè)接口混用就會(huì)報(bào)media_id無(wú)效。群里添加機(jī)器人時(shí)有一個(gè)“安全設(shè)置”如果你勾選了“關(guān)鍵詞”限制那消息內(nèi)容必須包含指定關(guān)鍵詞否則調(diào)用會(huì)報(bào)錯(cuò)。這個(gè)坑特別隱蔽報(bào)錯(cuò)信息也不直觀我第一次遇到時(shí)查了半天才發(fā)現(xiàn)是關(guān)鍵詞沒(méi)寫(xiě)。webhook方式不需要access_token只需要webhook地址本身。所以任何人拿了這個(gè)地址都能往群里發(fā)消息地址泄露等于是把群聊的發(fā)言權(quán)交了出去要注意保護(hù)。4. 完整實(shí)操?gòu)呐渲脩?yīng)用到發(fā)出一條群聊圖片前面講了不少原理這一節(jié)帶大家完整走一遍流程。我按“最可能遇到的真實(shí)場(chǎng)景”來(lái)串先是私聊文本然后私聊圖片最后往群里發(fā)markdown消息。4.1 前置準(zhǔn)備你需要先在企業(yè)微信管理后臺(tái)完成這些操作注冊(cè)企業(yè)微信獲得CorpID企業(yè)ID。在“應(yīng)用管理-自建”里創(chuàng)建一個(gè)自建應(yīng)用拿到AgentId和Secret。在“管理后臺(tái)-我的企業(yè)-可信信息”里配置你的服務(wù)器公網(wǎng)IP為企業(yè)可信IP。如果要體驗(yàn)群聊任意創(chuàng)建一個(gè)內(nèi)部群在群設(shè)置里添加“群機(jī)器人”復(fù)制webhook地址。準(zhǔn)備一個(gè)小型測(cè)試文件比如一張小于2MB的圖片test.png。這些步驟都是后臺(tái)點(diǎn)點(diǎn)點(diǎn)不涉及代碼但一定要做對(duì)。尤其是第3步很多人都忽略了。4.2 獲取并緩存access_token代碼直接復(fù)用第2部分寫(xiě)的TokenManager類。如果你用Flask或FastAPI寫(xiě)服務(wù)可以在應(yīng)用啟動(dòng)時(shí)初始化一個(gè)全局的TokenManager實(shí)例token_mgr TokenManager(corp_idww1234567890abcdef, secret你自己的應(yīng)用Secret) # 在發(fā)送函數(shù)里獲取token token token_mgr.get_token()這里再補(bǔ)一個(gè)細(xì)節(jié)如果你的服務(wù)是多進(jìn)程或多實(shí)例部署用內(nèi)存緩存會(huì)導(dǎo)致每個(gè)進(jìn)程各自維護(hù)一個(gè)token有一半請(qǐng)求的token可能是過(guò)期的。生產(chǎn)環(huán)境建議把token放Rediskey名帶上corpid和secret的哈希值實(shí)現(xiàn)全局共享。4.3 發(fā)送純文本私聊消息現(xiàn)在開(kāi)始第一發(fā)。假設(shè)你要給userid為zhangsan的員工發(fā)一條純文本消息send_url fhttps://qyapi.weixin.qq.com/cgi-bin/message/send?access_token{token} payload { touser: zhangsan, msgtype: text, agentid: 1000002, text: { content: 你好你的工單已處理完成。 } } resp requests.post(send_url, jsonpayload) data resp.json() print(data)如果返回結(jié)果errcode為0說(shuō)明消息已成功進(jìn)入發(fā)送隊(duì)列。注意接口返回成功不代表對(duì)方已經(jīng)“已讀”也不代表網(wǎng)絡(luò)送達(dá)但正常情況下幾秒內(nèi)就會(huì)在客戶端出現(xiàn)。這里有個(gè)小技巧接口返回后如果你能獲取到消息的msgid可以在后續(xù)做更多追蹤。不過(guò)這個(gè)接口的返回里通常不包含msgid別強(qiáng)求。4.4 上傳臨時(shí)素材并發(fā)圖片消息下面來(lái)個(gè)更復(fù)雜的發(fā)一張圖片。先上傳素材再發(fā)消息# 第一步上傳臨時(shí)素材 upload_url fhttps://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token{token}typeimage with open(test.png, rb) as f: resp requests.post(upload_url, files{media: f}) data resp.json() if data[errcode] ! 0: print(上傳失敗:, data) exit(1) media_id data[media_id] print(拿到media_id:, media_id) # 第二步發(fā)送圖片消息 send_url fhttps://qyapi.weixin.qq.com/cgi-bin/message/send?access_token{token} image_payload { touser: zhangsan, msgtype: image, agentid: 1000002, image: { media_id: media_id } } resp requests.post(send_url, jsonimage_payload) print(resp.json())我在實(shí)際開(kāi)發(fā)時(shí)會(huì)把“上傳素材”封裝成一個(gè)通用函數(shù)內(nèi)部處理文件大小超限、格式校驗(yàn)、失敗重試等邏輯。因?yàn)樵谂客扑偷膱?chǎng)景里可能一次要發(fā)幾十張圖如果每個(gè)環(huán)節(jié)都手寫(xiě)代碼會(huì)非常臃腫。封裝之后的調(diào)用長(zhǎng)這樣def send_image(token, to_user, media_id, agent_id): payload { touser: to_user, msgtype: image, agentid: agent_id, image: {media_id: media_id} } return requests.post( fhttps://qyapi.weixin.qq.com/cgi-bin/message/send?access_token{token}, jsonpayload ).json()4.5 通過(guò)群機(jī)器人往群聊發(fā)markdown消息最后展示怎么往群里發(fā)消息。這里不通過(guò)access_token而是直接調(diào)webhookwebhook_url https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyxxxxx payload { msgtype: markdown, markdown: { content: ## 監(jiān)控告警 \n 線上服務(wù)異常率超過(guò)5%請(qǐng)及時(shí)處理。\n 時(shí)間點(diǎn)2026-03-20 10:30:00 } } resp requests.post(webhook_url, jsonpayload) print(resp.json())如果群里給機(jī)器人配置了“關(guān)鍵詞”markdown內(nèi)容里必須包含那個(gè)關(guān)鍵詞。比如你配置的關(guān)鍵詞是“告警”上面這條消息里最好明確帶“告警”兩個(gè)字否則返回如下錯(cuò)誤{errcode:93000,errmsg:invalid webhook url, please check the webhook info}這個(gè)報(bào)錯(cuò)非常迷惑看起來(lái)像是webhook地址無(wú)效實(shí)際是安全設(shè)置攔截。我第一次做的時(shí)候被它坑了整整一下午。5. 高頻踩坑記錄與排錯(cuò)參考把我在項(xiàng)目里遇到過(guò)的所有問(wèn)題匯總成一張表你收藏這份以后調(diào)接口遇到報(bào)錯(cuò)直接對(duì)號(hào)入座。5.1 返回碼快速排查表返回碼含義常見(jiàn)原因處理建議0成功無(wú)無(wú)需處理40001access_token無(wú)效token過(guò)期、緩存被清、重新獲取導(dǎo)致舊token失效重新獲取token用新token重試40003userid不合法用戶不在通訊錄、不是應(yīng)用的可見(jiàn)范圍檢查userid大小寫(xiě)、同步通訊錄、擴(kuò)大應(yīng)用可見(jiàn)范圍40013corpid不合法配置的corpid寫(xiě)錯(cuò)了去管理后臺(tái)核對(duì)40014access_token不合法token錯(cuò)誤或已被覆蓋重新獲取token41030media_id無(wú)效素材類型不匹配、素材過(guò)期、用錯(cuò)上傳接口重新上傳素材檢查type參數(shù)45009接口調(diào)用超過(guò)頻率限制并發(fā)過(guò)高、循環(huán)調(diào)用、token重復(fù)獲取加本地隊(duì)列控制調(diào)用頻率批量消息分批發(fā)送60011無(wú)權(quán)限訪問(wèn)應(yīng)用沒(méi)有通訊錄權(quán)限、Secret不對(duì)應(yīng)檢查應(yīng)用權(quán)限設(shè)置確認(rèn)Secret與AgentId匹配60020訪問(wèn)來(lái)源IP不在白名單服務(wù)器公網(wǎng)IP未加入可信IP去管理后臺(tái)配置可信IP93000群機(jī)器人消息被攔截webhook地址不對(duì)、安全設(shè)置關(guān)鍵詞不匹配檢查webhook地址核對(duì)關(guān)鍵詞規(guī)則5.2 幾個(gè)典型問(wèn)題實(shí)錄除了返回碼我在項(xiàng)目里實(shí)際踩過(guò)的幾個(gè)場(chǎng)景也值得單獨(dú)說(shuō)。場(chǎng)景一接口返回成功但員工就是收不到消息這是最讓我頭疼的問(wèn)題。代碼檢查了很多遍返回碼始終是0但員工的企業(yè)微信里就是沒(méi)有新消息。排查到最后發(fā)現(xiàn)這個(gè)應(yīng)用在企業(yè)微信后臺(tái)里從來(lái)沒(méi)被員工“使用”過(guò)而且可見(jiàn)范圍也跟員工無(wú)關(guān)。說(shuō)白了你在后臺(tái)把應(yīng)用可見(jiàn)范圍設(shè)成了“研發(fā)部”但給一個(gè)“市場(chǎng)部”的人發(fā)消息接口可能不會(huì)直接報(bào)錯(cuò)而是默默丟棄。所以收到0也別高興太早先確認(rèn)接收人是否在可見(jiàn)范圍里。場(chǎng)景二給部門(mén)發(fā)廣播返回60011我當(dāng)時(shí)想給某個(gè)部門(mén)發(fā)通知toparty填的是部門(mén)ID但一直返回60011提示沒(méi)有權(quán)限。原因是應(yīng)用可見(jiàn)范圍只勾選了“全體成員”里的某幾個(gè)部門(mén)沒(méi)有單獨(dú)把這個(gè)部門(mén)勾進(jìn)去。有些你以為是后臺(tái)配置的問(wèn)題其實(shí)是“可見(jiàn)范圍”和“通訊錄權(quán)限”兩個(gè)概念混在一起要同時(shí)滿足。場(chǎng)景三群機(jī)器人發(fā)圖片報(bào)media_id無(wú)效前面提過(guò)群機(jī)器人上傳素材的接口是/webhook/upload_media但是很多人包括我容易下意識(shí)直接用/media/upload。這兩個(gè)接口返回的media_id格式都差不多但互相不通用。所以如果你確認(rèn)token沒(méi)有過(guò)期、圖片也沒(méi)超2MB但報(bào)media_id無(wú)效趕緊看看是不是用的上傳接口不對(duì)。場(chǎng)景四文本消息內(nèi)容里帶中文或特殊符號(hào)出現(xiàn)亂碼這個(gè)問(wèn)題主要出現(xiàn)在一些老舊的HTTP客戶端上設(shè)置請(qǐng)求頭的時(shí)候沒(méi)指定UTF-8編碼。企業(yè)微信接口是標(biāo)準(zhǔn)的UTF-8所以Content-Type一定要寫(xiě)成application/json; charsetutf-8。requests庫(kù)默認(rèn)會(huì)處理好但如果自己用其他語(yǔ)言寫(xiě)SDK就要注意。最后分享幾點(diǎn)我的個(gè)人體會(huì)接口文檔寫(xiě)得很全但是“能跑通”和“在生產(chǎn)環(huán)境中穩(wěn)定跑”之間還隔著大量細(xì)節(jié)。我在做了好幾個(gè)類似項(xiàng)目之后最大的感受是一定要在項(xiàng)目初期設(shè)計(jì)一個(gè)統(tǒng)一的消息服務(wù)層把token緩存、素材上傳、消息發(fā)送、重試邏輯全部封裝好不要讓業(yè)務(wù)代碼直接裸調(diào)接口。這樣后面接更多消息類型時(shí)只改服務(wù)層就夠了不用動(dòng)上層業(yè)務(wù)。另外不管你用py、Java還是Go先做小范圍灰度。我的習(xí)慣是先把代碼寫(xiě)一個(gè)命令行腳本手動(dòng)發(fā)給自己和測(cè)試號(hào)逐項(xiàng)驗(yàn)證文本、圖片、文件和群機(jī)器人消息類型全部跑通再接入業(yè)務(wù)系統(tǒng)。別一上來(lái)就做批量推送否則限流、權(quán)限、media_id過(guò)期這些問(wèn)題混在一起你會(huì)被搞得懷疑人生。企業(yè)微信消息接口的價(jià)值不在于“能發(fā)消息”這個(gè)動(dòng)作而在于它可以被程序化地整合進(jìn)你的運(yùn)維系統(tǒng)、報(bào)表系統(tǒng)、客戶運(yùn)營(yíng)系統(tǒng)成為整個(gè)自動(dòng)化工作流里最接近人的一環(huán)。先把私聊文本跑通再逐步加上圖片、視頻、群機(jī)器人你會(huì)發(fā)現(xiàn)這套API能做的事情遠(yuǎn)比想象中要多得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产无码高清操逼视频| www熟女乱伦com| 日本精品不卡一二三区| 久操操AV电影| 超碰97护士| 青娱乐老司机视频| 97 国产精品| 麻豆色99999| 97手机日韩| 成人色女网| AAA久久| 超碰在线免费一区二区三区| 亚洲吊色| 久久综合日韩亚洲欧美| 51一区二区三区| 国产熟妇 码视频户外直播| 经典丝袜一区| 啊啊啊 在线观看| 强奸乱伦动态污图免费 | 麻豆久久久久久久久丝袜| 久久无码成人| 久久久久九九九九九| 天天干2019| 国产无码一二三区| 精品毛片久久久精品毛片| 激情综合网亚洲| 色在线69堂| 偷拍欧美激情| 99色色网| 99无码精品| 超碰在线香蕉| 婷婷五月天无码| 操逼片中文| 91久久精品国产| 国产成年精品高清在线观看91| 久久久久久九九九九九| 色九月综合| 麻豆天美国美国产| 97干com| 无遮挡h肉动漫在线观看| 丁香婷婷五月| 欧美国产精品久久九九| 丝袜足交视频| 日本色色视频网站| 亚洲一区日韩精品中文字幕 | 中文字幕制服欧美久久一区| 三级三级三级日本99| 人妻在线视频| 波多野结衣先锋影音| 亚洲AV无码秘 蜜桃臀国精产品| 人妻91少妇| 日韩97视频| 一区二区国产视频在线观看| 都市激情人妻一区二区青青操视频 | 超碰 国产熟女精品一区| 中国小夫妻勾搭露脸淫荡对白| 无码91| 日本三级小说中文字幕| 最新一二三区视频| 久久99999| 96免费视频在线| 天天弄欧美| 久久中日麻豆| 91A欧美电影网站| 男人的天堂VA| 成人五月天丁香激情综合| 欧美色爱综合| 国产强奸无码乱伦| 蜜乳中文字幕a在线| 视频二区美腿制服人妻欧美| 亚洲九九九| 亚洲 欧美 日韩 国产一区二区| 老熟女乱伦一区| 天天操夜夜操狠很操| 日韩成人性爱AV| 国产欧美亚洲精品a第2页| 国产尹人在线视频免费| 懂色综合久久久| 东北夫妻性偷拍| AV高清一区| 色香在线| www亚洲欧美| 性暴力欧美猛交在线直播| 亚洲熟女性高潮久久久| 亚洲乱熟女一区二区| 74成人在线| 久久久96| 欧美激情另类一区二区| 屌色在线97视频| 日韩精品9999| 老司机香蕉久久久久| 级做a爱无码性色永久免费| 女人被男人桶爽视频网站| 在线综合色| 中文字幕成人| 亚洲男人的天堂AV| 清纯唯美综合亚洲| 日本精品一级二级三级| 手机看av网站在线看| 激情网五月天| av草草在线电影| 久久久一区二区三区四区五区| 伊人操你| 激情综合97| 亚洲欧美中日韩| 97久久国产亚洲精品超碰热| 草草电影院| 日韩欧美中文日韩欧美色| 综合五月婷婷| 欧美日韩97在线| 日韩操p| 久久,精品一二三| 热热热热日日漂亮永久永久国产日| 99后入| 超碰97人人cao| 这里只有精品视频在线| 免费97视频| 综合伊人激情| 磁力99AV| 手机午夜电影神马久久| 99精品丰满人妻无| 97极品无码| 欧美性爱系列| 国产av热热色| 日本午夜操逼| 91精品免费| 国产最新小视频在线播放下载| 丁香五月激情综合| 精品久久久久久久| 国产热RE99久久6国产精品首| 国产青视频| 国产偷人伦激情在线观看| 国内外色色色色色成人视频| 亚洲欧美日韩激情不卡| 久都青青视频| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 亚洲精品国产精品乱码不99| 骚逼自拍99| 一类无码操逼视频| 91国产在线精品| 精品国产无码中文| 亚洲综合性网址| 亚洲h片在线免费观看| 国产精品久久发布| 国产一级高跟丝袜| 有码免费观看| 国产三级资源在线观看| ss久久| 女人天堂av在线播放| 好吊色在线观看| 超碰色综合| 日本久久久久久久久| 亚洲天天操| 欧美有码亚洲中文字幕一区二区三区四区 | 大学生美女口爆| 久久国产精品一级二级三级| 91大神精品长腿在线观看网站| 精品大久久| 日韩欧美大片免费高清啪啪| 97超碰免费人人性爱| 午夜福利免费福利视频| 亚洲人妻久久| 超碰久在线天天做| 天天操天天插| 白嫩国模丰满一二三区| 中日韓欧美高清| 精品久久久久瑟瑟| 日本一区二区三区四区免费观看| 人妻熟女一区二区在线视频| 精品国产自在在线99| 内射老妇BBWX0C0CK| 欧美影音在线| 亚洲综合113页| 久久亚洲国产成人| 精品一区二区2| 九九九九久久久| 囯产精品久久久久久久久久梁医生| 中文幕97| 免费观看有码高清视频| 国产精品自拍xxxx| 成人线上超碰| 丝袜色综合| 久热伊人99re| 欧美性爱系列| 久久国产在线一区二区| 97中文综合| 国产AV天美| 日韩国产中文字幕| 大香蕉免费3| 草久在线| 91欧美网| 综合网亚洲1| 亚洲色图激情小说| 日韩人妻无码专区| 日韩国产乱子伦App| 亚洲狠| 成人久久精品| 色老牛| 999久久久久久久精| 亚洲综合九九| 青青操狠狠撩| 精品性爱无码在线播放| 婷婷去俺也去六月色| dy888午夜老子影视达达兔| 天天操天天日天天干| caopeng97人妻| 中文字幕一区av| 亚洲成?V人片在线观看福利| 曰韩无码777| 在线综合色| 午夜激情成人在线观看| 亚洲激情在线观看一区| 日本高清免费一本视频在线观看| 好吊色综合| 久九九九九九九九热| 日本精品免费一区二区三区四区| 色色五月婷婷| 天天综合网~69| aaa一级黄片| 亚洲欧洲国产综合av| 久草免费福利在线播放| 国产不卡免费在线视频| 尤物黄色在线观看网站| 国产精品视频麻豆入口| 嗯啊视频免费在线观看| 91视频综合网| 免费看黄片现成| 日韩免费簧片| 美中日韩无码| AV无码久久久精品| 丁香六月激情综合| 女同在线视频一区| 熟妇视频一区二区三区在线观看| 天美一二三在线观看Av| 中文字日本乱码| 日日天天久久啊啊aaa| 久久色激情一区二区三区| 天天欧美色| 大香蕉97久久| 久久久国产精品亚洲精品| 亚洲偷拍欧美激情| 欧亚 另类 久| 国产精品人妻无码久久久互動交流 | 久久久性爱视频| 亚洲蜜臀懂色| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 性色A∨91| 9久精品| 色欲久久久久综合网| 男人女人18禁片免费看网站| 蜜桃视频成a人v在线| 操婷婷逼| 一区中文字幕二区日韩| 伊人 俄罗斯 a v| 九九九九一级| 色网站导航大全| 天堂俺去俺来也www久久婷婷| 乱伦av.com| 亚洲人妻AV| 久久婷婷在线观看视频| 蜜臀aV午夜一区二区三区| 97超碰精品图片| 国产亚洲精品精AV.| 成人八戒网站| 精品久久99| 五月丁香影院| 91久久久久久久| 97爱亚洲| 岛国在线免费视频| 荡小穴在线观看| 土豪酒店各种姿势玩弄极品幼稚| 天天色欧美| 欧美国产欧美在线观看| 91在线限制级| 久9爱精品| 日韩欧洲操屄视频| www.婷婷| 人妻激情在线视频| 草草草视频在线免费看| 九九性爱网| 中文字幕-区二区三区四区视频中国| 少妇熟女视频一二三区| 久久久久免费看少妇A片特黄| 国产又操| 国产白丝在线| 国产资源中文字幕在线| 久久乐| 中国的操老妇女| 99re免费| 狠狠五月天| 欧美色图97| se01国产在线视频| 天天摸夜夜摸| 欧美中出| 嗯嗯嗯啊啊啊在线免费观看| 日本媚薬中文字幕在线| 一块操欧美性爱| 国产一区二区久久| 国产一区二区三区免费视频在性观看 | 久久一区二区三区入口| 亚洲男人的天堂在线看| 亚洲无码偷拍| 国产传媒1234区| 天天爽天天操啊啊啊| 欧洲熟妇xxXx欧美老妇裸体| 天天性射网| 日本性爱不卡视频| 久久久78| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 超碰在线974| 亚洲超碰97| 五月天婷婷成人网| 尤物视频视频官网| 2000亚洲男人天堂| 最新三级网址| 伊人性在线视频| 色噜噜婷婷| 奶水 人妻 哺乳 在线| 欧美丰满熟妇XXXX性ppX人交| 91国精产品| 自拍偷拍 高清无码| 人人噜夜夜操| 激情五月综合开心五月| 亚洲se电影| 国产日本久久免费精品| 极品肉射| 在线综合 亚洲 欧美中文字幕| 国产拍偷精品网站| 欧美天堂超碰97| 亚洲av成人精品一区| 色穴精品| 夜夜骑夜夜操| 亚拍在线| 国产高潮AA片免费看| 99re28在线观看| 欧日韩不卡视.频| 91在线精品一区二区三区| 99操| 欧美夜夜狠| 伊人国产成人av网站| 欧美日韩人人精品| 日韩成人精品视频自拍| 97欧美综合| 欧美熟妇操操视频| 黄片在线免费在线观看| 91爱| 97免费视频在线观看视频| 97国产成人精品免费视频| 日本色婷婷| 伊人 俄罗斯 a v| 男人 天堂 日 亚洲| 亚洲限制级| 户外裸露刺激视频第一区| 在线97视频| 18岁禁 茉莉成人久久| 亚洲性爱电影| 欧美 亚洲 第一页| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 日本有码影片下载 | 亚洲 国产 精品一区| 欧美色图 色综合图| 欧美香蕉视xxx| 无码聚合| 91影库| 狠狠入| 麻豆福利视频导航| 色色五月天婷婷| a一区二区三区乱码在线| 日本熟妇自慰性高潮一区二区三区| 一区久久久二区| 亚洲经典啪啪| 久久毛卡| 操迟操逼在巾线Fre看| 啊啊啊啊操死我| 乱操9999| 伦理弟一页| 蜜臀亚洲中文| 艳美熟妇先锋一二三区| 天天操夜夜操| 99操视频| www…国产操逼| 99热99在线播放激情| 三上悠亚在线毛片91| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 国产亚州高清国产拍精| 欧美亚洲激情| 日韩精品人妻中文字幕不卡乱码| 色婷婷成人综合| 强奸xx国产| 亚乱色| 无码国产Av| A级在线视频| 综合五月天| 骚日日av| 亚洲欧美综合图片| 一本色道人妻久久| 丝袜AV一区二区三区| 搡老女人老91妇女熟女| ...日韩成人一区二区三区字幕| 欧美五区| 99RE在线视频精品,这里只有精品| 麻豆 欧美 日韩| 看日韩美女二区三区免费操逼视频| 睡产熟女乱伦| 亚洲激情网| 91综合在线| 92福利社视频| 91女网站| 一本久久精品中文字| 国产精品久久久久久夜夜夜| 香港成人一级视频在线青青草| 久都青青视频| 快点操死我| 九一屌逼| 91精品久久久久久77777| 亚洲AV在线资源| 大香蕉色欲AV| www欧美91| 九九无码| 无色无码| 色噜噜狠狠色综无码久久合欧美| 2011国产精品| 曰本精品久久久| 久久999久| 日韩精品大香蕉伊人在线| 欧美天天在线| 热99这里有精品综合久久 | 黑人精品欧美一区二区蜜桃| 高清视频一区| 天天看精品动漫视频一区| 亚洲日本激情| 亚洲国产日韩欧美熟妇在线| 精品人妻一区二区三区-国产精品| 91天美传媒精品| 精品一二三区四视频| 欧美日韩97在线| 玖玖久久久| 欧美日韩黄片精品在线| www.色操逼| 99999无码| 国产亚洲精品美女| 国产精品农村妇女| 日韩人妻播放| 亚洲熟女国产综合另类| 国产精品97超碰| 亚洲综合欧美| 国产日本久久免费精品| 蜜臀AV一区二区三区激情综合| 偷拍五区| 强奸乱伦 亚洲一区| 国产女生在线| 大乔未久88一区| 少妇精品久久| 久久性视频| 久久嫩草国产成人一区| 色九九综合AV| 91在线免费精品视频| 婷婷午夜成人色中色| 丁香激情五月| 日本免费一区二区不卡| 久久无码一区二区二三区性色| 国内毛片无码一级毛片| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 久久久久久久久久va| 色色色色网站| 免费超碰97久久| 国产精品点击进入在线影院高清| 97精品综合久久| 久久久久久久久久久久久久久久9| 中文区中文字幕免费看| 成人免费在线网站| 欧美日韩少妇色情| 国产高清午夜成人在线观看| 中文字暮97| 91精品国| 99日精品欧美国产| 91亚.色| 亚洲成人免费中文字幕| 日韩成人精品中文字幕| 中文字幕免费在线观看| 亚洲一区二区中文字幕| 亚洲熟女一区| 人人操人人操草草| 亚洲一二三四区在线免费看视频| 一个国产在线综合网站| 国产一区麻豆免费观看| 超碰色97| 加勒比大香蕉视频在线| 97情超碰色| 熟女人妇一区二区三区| 中文字幕久久精视频久久大全| 精品国产Av无码久久久伦古装| 国产白嫩漂亮KTV在线| 热久久99999| 国产精品视频麻豆入口| 天天激色| 女人被添高潮免费视频| 五月天精品| 色播丁香| 精品午夜福利导航| 麻豆伊人网| 亚洲无码免费看| 亚洲美女黄色| 婷婷色中文字幕| 熟妇人妻精品一区二区| 人人色97| 日韩免费三级黄片电影| 欧美高潮在线| 国产www色在线观看| 久久九七| 欧美刺激色黄片免费看| 亚洲性天堂| 十八禁网站在线| 国模私拍一区二区三区神乳| 久久久男人的天堂| 伊人AAA| 在线播放成人高清免费视频| 东京成人一区| 岛国黄色短视频| 日本好吊色视频| 99在线精品观看视频中文| 综合久| 国产黄色剧情影片麻豆免费播放| 日本东京热大香蕉a片| 欧美日韩操操操| 亚洲色图A| 日本97久久久精品| 国产成人网址| 高清成年美女黄网站免费大全 | 中文字幕av片| 大香蕉伊人网WWWn0n| 91丨熟女丨丰满熟女| 亚洲国产精品成人久久蜜臀| 国产偷仑| 国产精品一二三免费网站| 国产探花日韩援交| 91成人18| 999久久久久久久久| 亚洲s在线观看| 久久香蕉综合一本到3atv| 欧美色图20p| 一本一道久久综合久久| 免费人人搞97| 欧美亚洲日韩人妻在线观看| 奇米狠999| 日韩成人性日韩成人性爱视频在线免费观看 | 黑丝内射一区二区三区| 日韩探花精品在线视频| 亚洲欧洲中文日韩女优乱码| 亚洲性天堂| 亚欧洲一区二区视频| 好淫网一二三视区| 丁香六月婷婷| 美女被艹尤物视频| 青娱乐休闲视频在线观看| 久草毛片| 精品视频久久区| 99国产精品久久久久久久成人热| 又黑又大又粗| 天天影视网综合少妇| 色欲av一区二区三区蜜芽| 欧美色图 色综合图| 九色 蝌蚪 熟女自 | 国产亚洲精品美女久久久m| 国产免费黄色一级大片| 啊啊啊啊操死我| 亚洲激情久久久伊人综合| 操91| 亚洲素人综合| 日韩丨制服丨中文|在线| 欧美猛交黑寡妇中文字幕| 97超碰无码网| 久久夜夜夜夜| 日本淫穴在线| 日本免费一区二区不卡| 久久9免费视频| 无码人妻丰满熟妇奶水区毛片| 欧美不卡在线美女| 九九久久久九九| 91扒丝袜综合在线| 亚洲欧美性生活| 欧美爆操91| 麻豆福利视频导航| 粉嫩少妇自慰在线| 中国熟女91| 中出91视频| 久久国产999| 欧美亚洲韩国视频十五区| 激情另类激情| 日韩欧美性吧婷婷乱伦大香蕉 | 乱伦图一区| 蜜乳性色无码专日粉嫩骚逼AV| 欧美成人四级在线播放| 操逼逼福利视频| 国产免费永久精品无码| 色色国产| 97欧美色资源| 极品出轨视频网站| 十八禁啪啪视频| heyZO天然素人无码AⅤ专区| 國產尤物AV尤物在線觀看| 青青草丝袜在线视频| 99热在线观看| 99RE在线视频精品,这里只有精品| 伊人久久久日韩一区| 国产免费一区| 天天综合中文字幕 91| 欧美成人精品欧美一级乱黄一区二… | 亚洲综合九九| 国产日韩精品suv| 日韩Va亚洲va欧美Ⅴa久久| 久久九九网| 97超碰色屌| 人妻少妇久久| 精品一区二区三区国产| 性色av网站| 97综合在线观看| 久久是精品| 97视频免费| 亚洲精品丝袜-不卡成人免费……| 男人天堂久久日韩| 国产三区免费在线观看| 伊人国产视频| 欧美色性情| 免费一级视频特黄色大片| 精品人妻一区二区三区在线视频不卡| 97干com| 日本506070| 久久av色| 久久国产视频性吧| 国产又大又硬又长又粗| 欧美图片校园春色| 久久久久大香青草精品综合| 99热在线观看| 久久久久9| 色娱乐色呦呦夜夜夜夜av| 色爱亚洲| 亚洲无码久久久久久久| 99综合| 亚洲日韩东京热一区| 97综合网| 欧美综合自拍成人自拍第二十页| 日韩亚洲97| 一级毛片久久久久久久女人18| 国产九月婷婷| 人妻第一页| 操屄不卡视频| 爱妻综合网| 美国人人操人人操| 东北老女人的激情视频| 1769成人国产精品视频| 免费黄色视频网址| 99热在线只有精品| 少妇无码av专区线| 六九九九| 欧美—性—交—色| 国产精品熟女九色九色蜜臀| 日韩有码一区三区| 国产黄片在线免费观看| 亚洲精品久久久久久| 992视频一区| 婷婷综合在线| 啊啊啊啊无码| 激情综合五| 超碰在线91| 欧美亚洲日韩人妻在线观看| 色欲久久99国产精品久久久久久| 亚洲熟妇自偷自拍另欧美| 精品国产一区二区三区在线播出| 超碰资源亚洲97| 亚洲无码 国产无码| wwe 天天干.com| 东北丰满熟女国产一区| 国产11页| 殴美,日韩国产伦精品| 色伊人91| 96久久久精品| 日日操夜夜操天天操免费观看麻豆| 久久综合九九| 午夜美女福利视频| 丝袜综合| 在线视频亚洲无码| 九九成人精品| 久操视频资源站公开| www久久精品| 亚州国产精品乱| 91色综合| 走光一区92下载| 99热在线播放| AV中亚| 亚洲熟妇图片| 精品国产久久乱码| 九九九九精品在线| 99综合自拍| 丝袜美腿操av| 嗯嗯嗯啊啊啊操的我好爽| 翔田千里无码中出中文字幕| 久久久少妇诱惑精品视频| 婷婷五月天久久久| 久久精品无码专区| 久久中出在线| 超碰在线人妻| 免费看片黄| 91天堂丝袜美腿| 蜜桃精品一区二区三区ww| 国产精品一级特黄aaa大片在线观看| 用力操死我| 图片区小说区| 久久这里只精品免费福利| 天天射天天色成人| 偷拍色图| 日日AV加勒比| 九九九九九九亚洲| 人妻少妇色综合| 国产1769在线| 午夜无码精品免费看性色| 中文字幕在线免费观看2| 少妇激情一区二区三区视频| 91欧美性| 精品国产乱码久久久兰草影视| 天天色悠悠激情| 9999久久久久| 天美麻花大全视频| 亚洲图片欧洲图片aⅴ| 91露脸熟女专区| 免费成人自拍视频在线| 亚洲深夜福利| 欧美色图99| 伦理日韩国产久久| 亚洲色情在线影视| 日韩乱伦AⅤ| 国产熟妇一区二区| 日韩精品亚洲专区在线影视| 欧美色视频在线| 人妻啪| 欧美五十路熟| 为用户提供免费看黄网址在线观看| 91操熟女| 91在线免费精品视频| 大象AV在线| 另类图片欧美激情综合| 日韩国产精品人妻无码久久久| 啊啊啊免费| 92久久| 91精片| 被窝影院午夜看片无码| 亚洲精品成人动漫在线| 亚洲一区二区三区播放在线| 亚洲欧美综合区自拍另类| 国产高清26uuu| 在线综合色| 国产精品久久久鸭无码的功能| 亚洲成人久久美女| 长长久久88视频| 日韩精彩免费| 亚州色图欧美| 欧美偷偷网| 极品色综合| 一区在线精品中文字幕| 色欲三区| 伊蕉97蜜桃97狠狠综合干| 欧美熟女妇同| 91色伦| 天天伊人| 欧美激情性久久久久久| a v网站在线播放| 99性视频| 色老汉色| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 天堂а√在线最新版在线| 免费的很黄很污的全部视频| 无码日韩网站| 精品久久久久瑟瑟| 男人天堂网手机版婷婷| 2017天天操| 国产精品成人无码a v毛片| 无码抄逼网| 天天淫人人妻日日色| 欧美午夜视频| 亚洲欧美黄| 亚洲最大成人a毛毛片| 成人在线日韩| 欧美91网站| 91精品91久久久中77777| 亚洲精品国产日韩无码AV永久免| 日本午夜久久电影| 国产福利夜| 校园春色 亚洲| 91av一区二区在线观看| 天天色播| www.男人天堂| 91天天综合网| 欧美刺激色黄片免费看| 天天综合香 ld视频| 黑人精品欧美一区二区蜜桃| 免费久久一级毛片大黄| 日本三级中国三级99人妇网站| 日韩欧美丝袜诱惑| 婷婷爽人人婷婷爽视频| 91天堂色男人的天堂| 一个人在线看的黄色电影网站| 日本久久久久久久久久| 狠狠操官网| 丝袜夫妻自拍| 偷拍导航视频网站| 国产第25页在线观看| 色九月综合| 欧美乱欲| 婷婷五月天av| 小电影欧美91| 插日本熟女视频| 天操老女人| 另类图片欧美激情综合| 操狠狠| 夜夜性| www.久久久久| 日韩人人精品| 中文一区在线视频| 一区二区三区成人| 家庭乱伦国产| 天天享受天天看| 一起草三级AV电影在线观看| 亚洲熟妇自偷自拍另欧美| 丝袜美腿91| 性爱av在线免费观看| 国产精品乱码久久久、久久| 亚洲精品三区在线观看| 第四色亚洲色图| 精品三级在线专区| 夜夜操夜夜爽夜夜高潮| 中文字幕97| 久久国产精品91| 亚洲九九九九| 美女黄页| 日韩极品无码B| 青青草大香蕉在线视频| 国产成人精品必看| 欧美日动态视频| 日韩亚洲中文字幕在线| 国产第11页| 日本人人操人人操| 欲综合网| 黄页大片在线观看| www国产无码| 亚熟在线| 一本精品日本在线视频精品| 九九自拍伦理| 肉嘟嘟www视频在线观看高清| 粉嫩久久久极品| 九九99精品| 加勒比伊人| 久久精9| 思思性爱| 欧美+日产+中文| 大香蕉免| 一级黄色性爱A级片| 性欧美| 97超碰69| 国产精品无码久久久久2025| 伊人少妇久久久| 国产精品免费视频不卡| 亚洲日韩精品一区二区| 嗯啊啊啊轻点视频| 人妻二区| 疯操AV| 欧美久久草熟女| 狠狠操夜夜| 超碰99在线| 97中文字幕色| 操逼网站视频漫画国产| 91丝袜| 欧美少妇高潮久久91| 国产AV高清AV无码| A 天堂| 麻豆黄站| 超碰 另类 欧美 | 艹少妇网站| 天天干18禁| 男人的天堂2000| 激情文学网伊人| av日韩国产一区二区| 9丨久久九九九 | 亚洲成熟国产精品美女| 久久久96| 中文字幕精品亚洲熟女| 麻豆国产av网| 中文字幕在线高清男人的天堂 | 四虎永久在线精品免费网址| 久久久久久久久成人av解说| 啊啊啊啊网站| 精品人妻伦一区二区三区久久| 欧美极品女人的天堂| 无色无码| 人人人摸人人| 东京热天堂网| 蜜臀网址在线| 亚州熟妇精品| 亚洲美欧999| 人妻久久久| 国产熟女乱论| 超碰国产精品无码| 天美传媒AV在线播放| 一区二区三区四区在线不卡| 女人一区| 精品国产自在在线99| 巨爆乳肉感一区二区三区竹菊影视| 一个国产在线综合网站| 青草成人免费视频一com| 四虎免费在线播放| 91激情综合| 欧美日韩精品久久| 黄色成品网站| 久久久久精| 99热思思| www.久久99| 国产一区二区三区影片| 围产精品一区二区三区视频播放| 亚洲 中文字幕 精品| 麻豆久久一区二区三区| 综合色区偷拍| 久久婷婷苹果| 亚洲成人AB| 日本高清一本二本免费不卡| 91N综合网在线| 中文字幕文字幕无码一区二区三区电影99| 九九九综合精品| 欧美 亚洲 综合 制服| 久操操| 麻豆福利视频导航| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 麻豆国产成人精品| 亚洲欧洲美腿丝袜| 爱爱动态120秒| 亚洲色婷婷| 婷婷伊人綜合中文字幕小说| 5278欧美一区二区三区| 亚洲一区二区三区AV无码 | 中国黄色特级精品一区二区三区片| 69视频福利导航| 亚洲欧美国产中文字幕| 国产精品欧美激在线| 超碰这里只有精品| 日韩欧美中文字| 另类欧美| 999热日韩精品| 怡红院成人视频| 69精品| 97超碰精品| 天天干天天舔| 黑人美精品 A片| 免费亚洲黄色视频在线观看| 色综合av男人天堂| 欧美疯狂做爰xxxx| 婷婷五月在线视频| 亚洲天堂另类小说男人| 国产盗摄美女如厕大神作品在线观看 | 99999久久精| 超清中文乱码字幕| 自拍偷拍第26| 333kkkk·亚洲com久久| 91精品黄在线观看| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 天天操天天舔| 久久久九97| 色色99| 99草精| 欧美欧美啪啪视频| 亚洲成人性| 五月丁香综合| 磁力99AV| 国际精品久久久| 国产在线综合网| 欧美日韩国产中文精品字幕自在自线| 久久99精品视频| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 狠狠色五月亚洲91| a亚洲欧美色欲| 手机看av网站在线看| 超91综合网| 国产精品久久久久久久免牛肉蒲团| 亚洲精品97p| 欧美性爱日韩高清| 亚洲高清无码免费观看视频| 国产日韩精品一区二区三区| 欧美日韩人妻少妇 一区二区三区| 91亚洲网站| 韩国一级婬片A片无码天美| 日韩一级片| 91网站视频在线观看| www.91视频网| 少妇xx精品| 小草精彩毛片| 欧美综合色| 国产成人综合在线播放| 国产少妇与亚洲av| 麻豆区久久久久亚| 欧美自拍偷拍综合图片| 99激情| 久久中文字幕女同性恋一区| 国产精品久久久久无码Av网曝门| 国产精品亚洲免费| 久久久专区| 美女天天干| 99色综合| 激情视频图片| 岛国黄| 美女淫穴| 女色综合| 色婷五月天| 欧亚韩国999| www.伪伪| 亚洲情色一区三区| 好吊色综合| 99亚洲天堂| 久久精品无码熟妇一区二区三区视频导航| 亚洲密乳AV| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 美女诱惑1区2区| 欧美 亚洲精品首页| 国产中文字幕曰本毛片| 天美传媒Av在线| 欧美性生活男人的天堂| 久9久| 日韩欧无码一区二区三区免费不卡| 九九激情网| 一本色道久久综合精品婷婷| 91人妻尻屄视频| 男女性扦B| 色伊人91| 久久久神马影院| 黑人嘿嘿嘿超爽免费视频| 大乔未久88一区| 亚洲啪啪视频一区二区| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 亚洲国产精品99久久久| 亚洲激情 欧美色图| 一级做a爰片性色毛片久久| 麻豆国产原创AV色哟哟| 丰满人妻aA一区二区三区| 内射日韩大臀美女| 亚欧免费观看视频| 欧美激情超碰777| 性爱乱伦视频免费| 一区二区三区成人| 在线强奷到舒服的无码视频| 精品综合久久久久久97| 国产女生在线| 美女高潮国产高清| 久久人人妻| 国产粉嫩蜜臀av一区二区三区| 色哟哟-国产专区| 尤物黄色在线观看网站| 综合网97| 天天色播| av网站免费看| 久久国产视频专区一二三| 无遮挡一级毛片视频免费的| www被窝色com| 大香蕉综合| 天天看天天日天天操| 午夜天堂网| 色噜噜精品一区二区三| 91麻豆天美国产欧美高潮| 这里有精品| 亚洲欧洲av影音| 嗯嗯啊啊好大好爽| 五月丁香激情综合网| 亚洲无线观看久久| 色男人色天堂东京热| aaa一级黄片| 亚洲 无码 偷拍| www被窝色com| 一区二区三区精品黑丝白丝酒店对鸡| 12一15性XXXX粉嫩国产| 久久亚洲色图中文字幕| 日韩成人网址| 久久久久久国产成人| 久超碰这里只有精品| 天天色悠悠激情| 浪人综合网| 精品九九九| 超碰综合97在线| 北条麻妃99精品青青久久| 国产欧美一级在线观看| 青青久久艹| 97精品中文字幕| 午夜激情床戏激情| 无码在线亚洲| 久久国产在线一区二区| 中文字幕av片| 大香蕉在线免| 国产少妇肉丝在线观看| 国产一区二区a毛片| 啪啪啪亚欧美视频| 国产第二页| 91人妻视频在线| 国内毛片无码一级毛片| 国产久久免费精品视频| 精品国产99999| av东京热男人的天堂| 久久这里都是精品| 黄aaaaaaaaaaaaaaaaaa色网站| 操啊国产| 后入式免费视频| 国产AV线| 日韩电影天堂视频二区三区| 激激五月| 久久久com| 久久精品店| 成人免费看吃奶视频网站| 亚洲在线欧美| 青青久草| 乱色老一区二区三区的观看方式| 成人精品视频一区二区| 9九九九九视频在线观看| 91强奸乱轮| 亚洲AV无码AV吞精久久久久| 欧美精品精品一区二区| 九九九九九精品| 中韩中文字幕在线观看| 色悠久久久av| 伊人991| 成人综合网 欧美| 久久精品免费| 超碰日本97美女人妻人人玩人人爱 | 欧美五区| 午夜呻吟欧美| 日本在线不卡123| 久操大香蕉手机视频在线看| 日韩中文字幕二区| 91操人| 久久久久九九九| 青青伊人这里只有精品| 亚洲国产av中文字幕久久| 日韩无码视频黄色| 亚洲一区在线观看欧洲| 综合亚洲欧美精品日韩?v| 人妻一区二区三区四区视频| 97超碰护士| 久久国产成人精品国产成人亚洲| 少妇精品久久| 一区二区高清视频| 午夜福利1区2区3区| 丁香五月色| 超碰人妻在线| 加勒比大香蕉视频在线| 这里只有精品久久| 一区二区三区精品黑丝白丝酒店对鸡| av资源在线观看少妇| 日韩午夜啪啪视频| 色色五月天婷婷| 中文字幕精品一区二区精品| 精品国产乱码久久久久久影片| 中文字幕老熟妇黄色视频| 91精品国产综合久久久蜜臀| 图色综合网| 欧美999999| 日本精品一区二区三| 亚洲天天自拍|