午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 教你如何使用Python開發(fā)一個(gè)釘釘群應(yīng)答機(jī)器人

教你如何使用Python開發(fā)一個(gè)釘釘群應(yīng)答機(jī)器人

熱門標(biāo)簽:梅州外呼業(yè)務(wù)系統(tǒng) 地圖標(biāo)注視頻廣告 百度地圖標(biāo)注位置怎么修改 大連crm外呼系統(tǒng) 高德地圖標(biāo)注是免費(fèi)的嗎 洪澤縣地圖標(biāo)注 老人電話機(jī)器人 北京電信外呼系統(tǒng)靠譜嗎 無錫客服外呼系統(tǒng)一般多少錢

前提

搭建釘釘應(yīng)答機(jī)器人,需要先準(zhǔn)備或擁有以下權(quán)限:

  • 釘釘企業(yè)的管理員或子管理員(如果不是企業(yè)管理員,可以自己創(chuàng)建一個(gè)企業(yè),很方便的)
  • 有公網(wǎng)通信地址(內(nèi)網(wǎng)穿透也可以);

釘釘群機(jī)器人開發(fā)文檔:https://developers.dingtalk.com/document/app/overview-of-group-robots

創(chuàng)建「機(jī)器人」應(yīng)用

登錄「釘釘開發(fā)者后臺」,選擇「應(yīng)用開發(fā)」——「企業(yè)內(nèi)部開發(fā)」—— 「機(jī)器人」

輸入好機(jī)器人的基本信息之后,就會生成創(chuàng)建一個(gè)「釘釘機(jī)器人」

我們的后端應(yīng)用通過其提供的「AgentId」、「AppKey」、「AppSecret」就能夠與釘釘機(jī)器人進(jìn)行通信。

接收消息

在釘釘機(jī)器人的設(shè)定中,當(dāng)用戶@機(jī)器人時(shí),釘釘會通過機(jī)器人開發(fā)者的服務(wù)器地址,用 POST 請求方法把消息內(nèi)容發(fā)送出去,其 HTTP header 如下所示:

{
  "Content-Type": "application/json; charset=utf-8",
  "timestamp": "1577262236757",
  "sign":"xxxxxxxxxx"
}

其中,timestamp是消息發(fā)送時(shí)的時(shí)間戳,sign是簽名值,我們需要對這兩個(gè)值進(jìn)行校驗(yàn)。

如果timestamp與系統(tǒng)當(dāng)前時(shí)間相差1小時(shí)以上,則為非法請求。

如果sign簽名值與后臺計(jì)算的值不一樣,也為非法請求。

其中sign簽名值的計(jì)算方法為:header中的timestamp + “\n” + 機(jī)器人的appSecret當(dāng)做簽名字符串,使用HmacSHA256算法計(jì)算簽名,然后進(jìn)行Base64 encode,得到最終的簽名值。

其 Python 實(shí)現(xiàn)代碼如下所示:

import hmac
import hashlib
import base64

timestamp = '1577262236757'
app_secret = 'this is a secret'
app_secret_enc = app_secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, app_secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(app_secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = base64.b64encode(hmac_code).decode('utf-8')
print(sign)

其發(fā)送的消息格如下所示:

{
    "conversationId": "xxx",
    "atUsers": [
        {
            "dingtalkId": "xxx",
            "staffId":"xxx"
        }
    ],
    "chatbotCorpId": "dinge8a565xxxx",
    "chatbotUserId": "$:LWCP_v1:$Cxxxxx",
    "msgId": "msg0xxxxx",
    "senderNick": "楊xx",
    "isAdmin": true,
    "senderStaffId": "user123",
    "sessionWebhookExpiredTime": 1613635652738,
    "createAt": 1613630252678,
    "senderCorpId": "dinge8a565xxxx",
    "conversationType": "2",
    "senderId": "$:LWCP_v1:$Ff09GIxxxxx",
    "conversationTitle": "機(jī)器人測試-TEST",
    "isInAtList": true,
    "sessionWebhook": "https://oapi.dingtalk.com/robot/sendBySession?session=xxxxx",
    "text": {
        "content": " 你好"
    },
    "msgtype": "text"
}

其中,一些參數(shù)的說明如下圖所示:

我們接收到釘釘?shù)南⒑螅梢愿鶕?jù)實(shí)際的業(yè)務(wù)需求解析出相應(yīng)字段的數(shù)據(jù)來進(jìn)行處理。

響應(yīng)消息

釘釘機(jī)器人支持我們通過「text」、「Markdown」、「整體跳轉(zhuǎn)actionCard」、「獨(dú)立跳轉(zhuǎn)actionCard」和「feedCard」這5種消息類型發(fā)送消息到群里。

下面我們通過實(shí)際的代碼來展示接收釘釘機(jī)器人的消息,以及發(fā)送 5 種消息類型到釘釘群里。

創(chuàng)建一個(gè)后端應(yīng)用

接下來,我們通過創(chuàng)建一個(gè) Django 應(yīng)用來接收的處理用戶發(fā)送給釘釘機(jī)器人的消息。

首先,創(chuàng)建一個(gè) Django 項(xiàng)目和應(yīng)用:

django-admin startproject DdRobot
python manage.py startapp app_robot

然后打開 “C:\DdRobot\DdRobot\settings.py” 文件,修改 ALLOWED_HOSTS 變量:

ALLOWED_HOSTS = ['*']

將 app_robot 添加到 INSTALLED_APPS 變量列表中:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_robot',
]

創(chuàng)建校驗(yàn)時(shí)間戳和簽名函數(shù)

因?yàn)獒斸敊C(jī)器人會在請求頭里面?zhèn)魅?code>timestamp時(shí)間戳和sign簽名供我們對請求的合法性進(jìn)行校驗(yàn),所以為了機(jī)器人的安全,我們需要編寫 2 個(gè)函數(shù)對它們進(jìn)行校驗(yàn)(在DdRobot/app_robot/views.py文件中進(jìn)行)。

首先,是時(shí)間戳的校驗(yàn):

def check_timestamp(timestamp):
    now_timestamp = int(time.time()*1000)
    if now_timestamp - int(timestamp) > 3600000:
        return False
    else:
        return True

然后是簽名值的校驗(yàn),簽名值的計(jì)算方法和示例代碼釘釘已經(jīng)提供,我們借用即可:

def check_sign(timestamp,sign):
    import hmac
    import hashlib
    import base64

    # now_timestamp = str(int(time.time()*1000))
    app_secret = 'teTLGS3xZVLp6Z99mXvgVpINOUyJqFsKJ3jLb7crFdjRsJ3_77E-kxhlIbBGbNjX'
    app_secret_enc = app_secret.encode('utf-8')
    string_to_sign = '{}\n{}'.format(timestamp, app_secret)
    string_to_sign_enc = string_to_sign.encode('utf-8')
    hmac_code = hmac.new(app_secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
    new_sign = base64.b64encode(hmac_code).decode('utf-8')
    # print(sign)
    # print(new_sign)
    if sign == new_sign:
        return True
    else:
        return False

對于這 2 個(gè)值,校驗(yàn)成功我們都返回 True,校驗(yàn)失敗我們都返回 False。

創(chuàng)建視圖函數(shù)

接著,我們創(chuàng)建一個(gè)視圖函數(shù),用來接收釘釘傳輸過來的消息,以及響應(yīng)給釘釘。

@csrf_exempt
def resp_dd(request):
	pass

在 resp_dd() 函數(shù)中,首先從請求頭中讀取釘釘傳輸過來的時(shí)間戳和簽名值,然后進(jìn)行校驗(yàn):

@csrf_exempt
def resp_dd(request):
    timestamp = request.headers.get('timestamp','')
    sign = request.headers.get('sign','')
    # 校驗(yàn)時(shí)間戳
    if check_timestamp(timestamp) is False:
        return JsonResponse({'status':False,'data':'非法請求'})
    # 校驗(yàn)簽名
    if check_sign(timestamp,sign) is False:
        return JsonResponse({'status':False,'data':'非法請求'})

若是時(shí)間戳和簽名值校驗(yàn)無誤,我們繼續(xù)從請求 body 里面獲取消息信息:

@csrf_exempt
def resp_dd(request):
    timestamp = request.headers.get('timestamp','')
    sign = request.headers.get('sign','')
    # 校驗(yàn)時(shí)間戳
    if check_timestamp(timestamp) is False:
        return JsonResponse({'status':False,'data':'非法請求'})
    # 校驗(yàn)簽名
    if check_sign(timestamp,sign) is False:
        return JsonResponse({'status':False,'data':'非法請求'})
    body = json.loads(request.body)
    # 獲取用戶id
    # user_id = body['senderStaffId'] 機(jī)器人上線后才會返回
    user_id = body['senderId']
    # 獲取發(fā)送的消息
    msg_type = body['msgtype']
    if msg_type == 'text':
        content = body['text']['content']

目前釘釘機(jī)器人只支持text文本內(nèi)容的消息接收,所以在此處我們只對消息類型為text的消息進(jìn)行處理。

獲取到釘釘機(jī)器人發(fā)送過來的信息之后,我們就可以根據(jù)自己的業(yè)務(wù)邏輯進(jìn)行處理,然后返回特定的消息類型了。

在這里,我們只對消息進(jìn)行簡單的處理:

  • 當(dāng)發(fā)送來的消息文本為text時(shí),機(jī)器人回復(fù)文本消息;
  • 當(dāng)發(fā)送來的消息文本為markdown時(shí),機(jī)器人回復(fù)一個(gè) Markdown 的示例消息;
  • 當(dāng)發(fā)送來的消息文本為整體跳轉(zhuǎn)時(shí),機(jī)器人回復(fù)一個(gè)「整體跳轉(zhuǎn)卡片」的示例消息;
  • 當(dāng)發(fā)送來的消息文本為獨(dú)立跳轉(zhuǎn)時(shí),機(jī)器人回復(fù)一個(gè)「獨(dú)立跳轉(zhuǎn)卡片」的示例消息;
  • 當(dāng)發(fā)送來的消息文本為feed時(shí),機(jī)器人回復(fù)一個(gè)「feedCard」的示例消息;

先來定義 5 個(gè)不同消息類型的響應(yīng)格式。

文本消息類型

  # 響應(yīng)文字
    resp_text = {
        "at": {
            "atUserIds": [
                user_id
            ],
            "isAtAll": False
        },
        "text": {
            "content": "你剛剛發(fā)的消息是:[{}]".format(content)
        },
        "msgtype": "text"
    }

Markdown消息類型:

 # 響應(yīng)Markdown
    resp_markdown = {
        "msgtype": "markdown",
            "markdown": {
            "title":"州的先生機(jī)器人助理",
            "text": "## 這是什么? \n 這是一個(gè)釘釘機(jī)器人 \n ![](https://zmister.com/wp-content/uploads/2019/06/login_logo.png)"
        },
        "at": {
            "atUserIds": [
              user_id
            ],
            "isAtAll": False
        }
    }

整體跳轉(zhuǎn)卡片消息類型:

    # 響應(yīng)整體跳轉(zhuǎn)actionCard
    resp_actioncard = {
        "msgtype": "actionCard",
        "actionCard": {
            "title": "州的先生 Python 實(shí)戰(zhàn)教程合集", 
            "text": "![](https://zmister.com/wp-content/uploads/2019/06/login_logo.png) \n #### 州的先生 Python 實(shí)戰(zhàn)教程合集 \n\n 學(xué)習(xí)Python的一個(gè)好方法就是用實(shí)際的項(xiàng)目來熟練語言",
            "singleTitle" : "閱讀全文",
            "singleURL" : "http://mrdoc.zmister.com"
        }
    }

獨(dú)立跳轉(zhuǎn)卡片消息類型:

resp_actioncard_2 = {
        "msgtype": "actionCard",
        "actionCard": {
            "title": "州的先生 Python 實(shí)戰(zhàn)教程合集", 
            "text": "![](https://zmister.com/wp-content/uploads/2019/06/login_logo.png) \n #### 州的先生 Python 實(shí)戰(zhàn)教程合集 \n\n 學(xué)習(xí)Python的一個(gè)好方法就是用實(shí)際的項(xiàng)目來熟練語言",
            "hideAvatar": "0", 
            "btnOrientation": "0", 
            "btns": [
                {
                    "title": "去看看", 
                    "actionURL": "http://mrdoc.zmister.com"
                }, 
                {
                    "title": "不感興趣", 
                    "actionURL": "https://zmister.com/"
                }
            ]
        }
    }

Feed卡片消息類型:

# 響應(yīng)feedCard
    resp_feedcard = {
        "msgtype": "feedCard",
        "feedCard": {
            "links": [
                {
                    "title": "時(shí)代的火車向前開1", 
                    "messageURL": "http://mrdoc.zmister.com", 
                    "picURL": "https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png"
                },
                {
                    "title": "時(shí)代的火車向前開2", 
                    "messageURL": "https://zmister.com/", 
                    "picURL": "https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png"
                }
            ]
        }
    }

其他的消息響應(yīng)空:

# 響應(yīng)空,不回復(fù)
    resp_empty = {
        "msgtype": "empty"
    }

定義好幾個(gè)消息響應(yīng)類型數(shù)據(jù)后,我們對獲取到的 content 變量進(jìn)行判斷返回響應(yīng)即可:

 if content[1:] == 'text':
        return JsonResponse(resp_text)
    elif content[1:] == 'markdown':
        return JsonResponse(resp_markdown)
    elif content[1:] == '整體跳轉(zhuǎn)':
        return JsonResponse(resp_actioncard)
    elif content[1:] == '獨(dú)立跳轉(zhuǎn)':
        return JsonResponse(resp_actioncard_2)
    elif content[1:] == 'feed':
        return JsonResponse(resp_feedcard)
    else:
        return JsonResponse(resp_empty)

這樣,我們這個(gè)釘釘機(jī)器人的后端處理函數(shù)就寫好了。

配置路由

寫好視圖函數(shù)之后,我們配置一下這個(gè)函數(shù)的 URL 路由。

在 “C:\DdRobot\DdRobot\urls.py” 文件中把內(nèi)容修改為如下代碼所示:

from django.contrib import admin
from django.urls import path
from app_robot import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('dd_robot/',views.resp_dd, name="resp_dd"),
]

這樣 http://ip地址/dd_robot/ 就是釘釘機(jī)器人的消息接收地址。

配置釘釘機(jī)器人

回到釘釘開發(fā)者平臺的網(wǎng)頁,在釘釘機(jī)器人的「開發(fā)管理」頁面,我們需要把服務(wù)器的出口IP 和釘釘機(jī)器人的消息接收地址填寫好:

調(diào)試釘釘機(jī)器人

在配置好機(jī)器人的「服務(wù)器出口IP」與「消息接收地址」之后,我們點(diǎn)擊網(wǎng)頁菜單的「版本管理與發(fā)布」,點(diǎn)擊「調(diào)試按鈕」,進(jìn)入到釘釘機(jī)器人的調(diào)試群:

這回在「釘釘機(jī)器人名稱-TEST」的群里面添加創(chuàng)建的釘釘機(jī)器人:

我們可以在這個(gè)群里面@創(chuàng)建的群機(jī)器人進(jìn)行測試:

在測試沒問題之后,我們就可以點(diǎn)擊「上線」按鈕。釘釘機(jī)器人上線之后,就可以在釘釘群內(nèi)添加這個(gè)機(jī)器人。

這樣,我們就實(shí)現(xiàn)了從 0 到 1 使用 Python 開發(fā)釘釘群機(jī)器人。

基本的框架和流程大抵如此,具體的業(yè)務(wù)邏輯則需要根據(jù)不同的需求進(jìn)行額外處理。比如:

查詢天氣,就得解析消息中的城市,然后請求天氣接口獲取天氣數(shù)據(jù),進(jìn)行消息的響應(yīng);

淘寶客,就得解析消息中的文本,進(jìn)行分詞或其他處理,再查詢數(shù)據(jù)庫中的商品優(yōu)惠券數(shù)據(jù)或是直接請求淘客接口獲取商品優(yōu)惠券數(shù)據(jù);

員工績效,就得接入釘釘?shù)膽?yīng)用開發(fā),借助釘釘開發(fā)的用戶接口進(jìn)行數(shù)據(jù)查詢和響應(yīng)。

到此這篇關(guān)于教你如何使用Python開發(fā)一個(gè)釘釘群應(yīng)答機(jī)器人的文章就介紹到這了,更多相關(guān)Python開發(fā)釘釘群應(yīng)答機(jī)器人內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 用Python selenium實(shí)現(xiàn)淘寶搶單機(jī)器人
  • python通過Seq2Seq實(shí)現(xiàn)閑聊機(jī)器人
  • python操作微信自動發(fā)消息的實(shí)現(xiàn)(微信聊天機(jī)器人)
  • Python實(shí)現(xiàn)發(fā)票自動校核微信機(jī)器人的方法
  • Python實(shí)現(xiàn)生活常識解答機(jī)器人

標(biāo)簽:吉林 泉州 怒江 長春 安慶 岳陽 清遠(yuǎn) 洛陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《教你如何使用Python開發(fā)一個(gè)釘釘群應(yīng)答機(jī)器人》,本文關(guān)鍵詞  教你,如何,使用,Python,開發(fā),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《教你如何使用Python開發(fā)一個(gè)釘釘群應(yīng)答機(jī)器人》相關(guān)的同類信息!
  • 本頁收集關(guān)于教你如何使用Python開發(fā)一個(gè)釘釘群應(yīng)答機(jī)器人的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    久久r这里只有精品| 亚洲免费观看高清完整版在线观看 | 97久久精品人人爽人人爽蜜臀| 免费在线观看毛片网站| 久久久国产精品免费| 69xxxx国产| 国产精品久久久久免费a∨大胸| 免费成人在线观看视频| 免费特级黄色片| 91麻豆精品91久久久久同性| 久久人人爽人人爽人人| 日韩美女一区二区三区| 国产日韩欧美精品| 极品白嫩少妇无套内谢| 久久精品免费av| 国产欧美视频在线观看| 午夜精品福利视频| 在线观看国产免费视频| 久久99精品久久久久久| 国产无码精品视频| 黄色在线视频网| 国产精品免费网站| 久久久精品tv| www.欧美黄色| 欧美日韩中文字幕在线观看| 欧美高清在线视频| 亚洲 欧美 综合 另类 中字| 久久久久国产免费免费| 影音先锋欧美在线| 99麻豆久久久国产精品免费| 久草一区二区| 国产在线麻豆精品观看| 久久久久久久久久久久久国产精品 | 美日韩丰满少妇在线观看| 亚洲春色在线视频| www日本高清| 亚洲偷欧美偷国内偷| 婷婷开心激情网| 9色porny| 亚洲欧美偷拍三级| 日本黄色片视频| 亚洲熟女乱色一区二区三区| 欧美精品一区二区三区在线四季| 国产精品久久久久久久久久免费| 亚洲精品美女在线观看| 三级网站在线播放| 成人中心免费视频| 免费在线欧美视频| 欧美精品乱码久久久久久| 亚洲综合精品伊人久久| 波多野结衣家庭教师视频| 亚洲精品国产av| 日本高清不卡三区| www..com久久爱| 麻豆md0077饥渴少妇| 亚洲人成电影网站色mp4| 国产成人永久免费视频| 日韩区在线观看| 99精品免费观看| 激情黄色小视频| 日韩一区和二区| 日韩毛片在线免费看| 久久精品亚洲热| 国产精品国产精品国产专区不片| 在线观看免费高清视频| 亚洲国产欧美一区二区丝袜黑人 | 人人干人人视频| 欧美一区二区三区四区五区| 日日躁夜夜躁白天躁晚上躁91| 国产性70yerg老太| 给我看免费高清在线观看| 精品欧美一区二区久久久伦| 久久久久久毛片| 欧美激情一级欧美精品| 亚洲成人第一区| 一本—道久久a久久精品蜜桃| 色综合色狠狠综合色| 亚洲精品成人无码熟妇在线| 久热国产精品视频| 轻轻草成人在线| 久久老司机精品视频| 一级肉体全黄裸片| 精品国产一区二区三区在线| 91成人天堂久久成人| 午夜激情一区二区三区| 中文字幕精品三级久久久 | 久久一留热品黄| 欧美最大成人综合网| 久久一日本道色综合| 国产a级一级片| 6080yy午夜一二三区久久| 岛国精品一区二区| 日本系列第一页| 一级黄色录像免费看| 日本欧美国产在线| 日韩在线视频免费观看| 欧美黑人巨大精品一区二区| 亚洲自拍偷拍色图| 日韩欧美99| 欧美二区在线视频| 日本欧美爱爱爱| 精品国产va久久久久久久| 亚洲免费影视第一页| 免费一级a毛片| 成人av手机在线| 在线观看免费黄网站| 国产噜噜噜噜噜久久久久久久久 | 国产最新免费视频| 国产精品96久久久久久又黄又硬| 日韩欧美一区二区三区久久| 日韩二区在线观看| 久久久久97国产| 蜜桃免费在线视频| 亚洲春色综合另类校园电影| 亚洲国产精品网站| 久久99久国产精品黄毛片色诱| 1024手机在线视频| 国产精品欧美综合亚洲| 欧美图片一区二区| 欧美激情 国产精品| 91国产在线播放| 一区二区三区在线播放欧美| 日韩精品一级中文字幕精品视频免费观看 | 中文字幕日韩av电影| 黄色在线观看av| 国产精品一区二区在线观看 | 久久精品国产99国产| 污污网站免费观看| 国产精品久久久久久久久久久新郎| 日韩免费在线观看| 制服视频三区第一页精品| 国产精品久久久久久久久久久免费看 | 日韩中文字幕在线不卡| 国产成人av在线| 欧美亚洲综合色| 美女网站色91| 国产精品久久久久久福利一牛影视| 国产精品丝袜久久久久久app| 久88久久88久久久| 另类小说第一页| 男女啪啪免费观看| 色老头一区二区三区在线观看| 久久精品99久久久久久久久| 久久91亚洲人成电影网站| 国产精品麻豆va在线播放| 91精品国产综合久久香蕉的用户体验 | 69亚洲乱人伦| 91一区二区三区| 日韩中文字幕免费看| 欧美性感一区二区三区| 久久亚洲一区二区三区四区| 男人天堂综合网| 国产片在线播放| 久久久久久91亚洲精品中文字幕| 国产在线观看免费视频软件| 女女互磨互喷水高潮les呻吟| 久久一区二区电影| 亚洲一区二区三区sesese| 日韩一区二区三区在线| 欧美浪妇xxxx高跟鞋交| 日韩欧美国产系列| 国产精品老女人精品视频| 成人国产在线视频| 91aaaa| 伊人婷婷久久| 亚洲国产精品成人精品| 亚洲男人天堂久| 日韩一区二区福利| 国产精品27p| 天堂网在线免费观看| 黄色大全在线观看| 国产污视频在线观看| 午夜精品久久久内射近拍高清| 精品污污网站免费看| 午夜不卡在线视频| 日韩理论在线观看| 亚洲免费在线观看视频| 国产精品免费aⅴ片在线观看| 成人精品亚洲人成在线| 久久尤物视频| 国产成人自拍高清视频在线免费播放| 93久久精品日日躁夜夜躁欧美 | 欧美三级日本三级| 国产在线观看免费视频今夜| 国产一区在线观看免费| 日韩av综合在线| ,一级淫片a看免费| 亚洲第一视频在线| 亚洲第一页视频| 丁香五精品蜜臀久久久久99网站 | 精品一区二区在线看| 91偷拍与自偷拍精品| 三级网站免费观看| 久久9999久久免费精品国产| 国产精品一区二区免费视频| 成人免费精品视频| 色综合天天狠狠| 欧美老女人xx| 青娱乐国产91| 亚州欧美一区三区三区在线| 97人人做人人人难人人做| 精品剧情v国产在线观看在线| 国产精品久久久久久久久搜平片| 日本女人黄色片| 蜜桃导航-精品导航| 国产精品啪啪啪视频| 国产一区二区在线免费播放| 国产无遮挡猛进猛出免费软件| 亚洲人视频在线| 美女爆乳18禁www久久久久久| 久久亚洲精品石原莉奈| 亚洲乱码中文字幕| 成人日韩在线电影| 亚洲图片综合网| 国产福利电影一区二区三区| 日韩欧美国产免费播放| 91精品国产aⅴ一区二区| 国产精品久久久久久久久| 日本一区二区三区四区五区六区| 国产精品9191| 99久久99久久精品免费看小说.| 国产精品国产一区二区三区四区 | 国产午夜精品久久| 日韩在线精品一区| 国产精品果冻传媒潘| 国产精品久久久视频| 国产伦精一区二区三区| 五月婷婷六月丁香综合| 狠狠爱在线视频一区| 91精品国产99久久久久久红楼| 亚洲天堂久久新| 免费看日韩毛片| 亚洲 欧美 中文字幕| 老司机精品免费视频| 天天操夜夜操av| 久久一二三四| 精品日本高清在线播放| 欧美成人免费观看| 国产传媒一区二区三区| 99精品一区二区三区的区别| 免费在线观看日韩av| 色一情一乱一乱一区91av| 欧美视频三区在线播放| 久久久久久国产精品日本| 国产日产亚洲精品系列| 久久riav| 精品一区二区三区免费视频| 欧美性受极品xxxx喷水| 国产不卡一区二区在线观看| 熟妇女人妻丰满少妇中文字幕| 无码精品人妻一区二区| 日韩一区二区在线观看视频| www.国产在线播放| 日本五十熟hd丰满| 亚洲色图欧美视频| 亚洲精品国产一区二区精华液| 亚洲女人天堂av| 99re视频在线播放| 男生和女生一起差差差视频| 久久精品二区亚洲w码| 亚洲电影免费观看高清完整版在线| 蜜桃视频一区二区在线观看| 国产精品100| 在线播放日韩导航| 日本免费高清一区| 国产91丝袜在线播放九色| 亚洲精品视频在线播放| 成人欧美在线观看| 手机毛片在线观看| 国产精品777777| 丰满岳乱妇一区二区| 一本色道久久综合无码人妻| 久久99九九99精品| 一区二区三区在线免费视频 | 亚洲一区二区三区av无码| 视频国产一区二区| 韩国欧美国产一区| 欧美浪妇xxxx高跟鞋交| 国产精品久久电影观看| 国产成人综合一区| 伊人久久中文字幕| 亚洲免费伊人电影| 欧美激情在线有限公司| 成年人在线观看视频免费| 国产三级理论片| 亚洲无人区一区| 日韩暖暖在线视频| 成人免费观看毛片| 国产免费叼嘿网站免费| 婷婷六月综合亚洲| 国产精品直播网红| 国产美女视频免费看| 婷婷视频在线观看| 制服丝袜国产精品| 国产精选一区二区| 五月婷婷综合激情网| 99视频一区二区| 中文字幕综合一区| 日韩毛片在线免费看| 国产免费av观看| 3d成人h动漫网站入口| 国产chinese精品一区二区| 最新黄色av网址| 中文字幕av不卡| 国产成人精品免高潮费视频| 色哟哟网站在线观看| 日韩av不卡一区二区| 亚洲福利视频在线| 欧美一级免费播放| 蜜桃av中文字幕| 亚洲国产精品va在线看黑人| 黄色一级视频在线播放| 空姐吹箫视频大全| 亚洲一区第一页| 精品亚洲一区二区三区四区| 秋霞影院一区二区| 欧美国产欧美亚洲国产日韩mv天天看完整| 色婷婷成人在线| 国产成人啪午夜精品网站男同| 久久亚洲春色中文字幕| 国产白嫩美女无套久久| 国产精品美女久久久久aⅴ| 91网站在线看| 久久久免费高清视频| 欧美精品精品一区| 欧美一级在线看| 成人黄页毛片网站| 91精品国产自产在线观看永久| 日本五十路女优| 亚洲国产又黄又爽女人高潮的| 午夜精品久久久内射近拍高清| 国产河南妇女毛片精品久久久| 欧美在线视频观看免费网站| 国产亚洲小视频| 亚洲第一黄色网| 国产欧美视频一区| 亚洲精品乱码久久久久久黑人| 国产伦精品一区二区三区在线| 一级做a爱片性色毛片| 日韩大片在线观看视频| 亚洲一级片网站| 一区二区三区在线免费| 亚洲精品二区| 美女久久一区| 成人欧美一区二区三区在线湿哒哒 | 欧美在线视频全部完| 无码日韩人妻精品久久蜜桃| 欧美国产一区在线| 老司机激情视频| 91在线码无精品| 日韩区国产区| 国产一区高清在线| 日本一区二区三区视频在线播放 | 91精品国产91热久久久做人人| 九色porny自拍| 在线观看精品一区| 少妇伦子伦精品无吗| 91国产丝袜在线播放| 久久久男人的天堂| 欧美成人高清电影在线| 国产高清视频免费在线观看| 日韩精品视频在线观看网址| 日韩精品一区二区亚洲av性色| 亚洲三级 欧美三级| 一级片中文字幕| 欧美老女人xx| 五月婷婷狠狠干| 日韩福利视频| 亚洲自拍偷拍网站| 白嫩情侣偷拍呻吟刺激| 亚洲激情视频网| 国产美女无遮挡网站| 日韩欧美成人网| 内射毛片内射国产夫妻| 日韩中文字幕第一页| 国产jzjzjz丝袜老师水多| 精品在线视频一区二区三区| 久久这里只有精品6| 亚洲一级免费在线观看| 精品国产百合女同互慰| 黄色网址中文字幕| 国产精品加勒比| 亚洲美女视频在线| 日本一区二区视频在线播放| 久久最新资源网| 韩国精品久久久| 自拍偷拍一区二区三区四区| 亚洲精品久久久久久久久久久久| 中文字幕一区二区三区四区视频| 国产a一区二区| 精品国产鲁一鲁一区二区张丽| 国产三级国产精品国产国在线观看| 青青草原一区二区| 久久精品亚洲一区二区三区浴池| 亚洲av成人无码一二三在线观看| 另类色图亚洲色图| 国产伦精一区二区三区| 在线观看欧美一区二区| 久久精品亚洲国产| 成人av免费观看| 国产一级黄色录像| 国产精品999999| 国产精品国产精品国产专区不蜜 | 精品国产91亚洲一区二区三区www| 久久综合九色综合欧美就去吻| 久久久无码人妻精品无码| 久久久精品视频在线观看| 精品制服美女久久| 鲁一鲁一鲁一鲁一av| 57pao国产成人免费|