成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > python注冊(cè)釘釘回調(diào)事件的實(shí)現(xiàn)

python注冊(cè)釘釘回調(diào)事件的實(shí)現(xiàn)

熱門(mén)標(biāo)簽:地圖標(biāo)注與注銷(xiāo) 宿州電話(huà)機(jī)器人哪家好 百應(yīng)電話(huà)機(jī)器人總部 無(wú)錫智能外呼系統(tǒng)好用嗎 成都呼叫中心外呼系統(tǒng)哪家強(qiáng) 電梯新時(shí)達(dá)系統(tǒng)外呼顯示e 南昌地圖標(biāo)注 旅游廁所地圖標(biāo)注怎么弄 西青語(yǔ)音電銷(xiāo)機(jī)器人哪家好

釘釘API文檔:https://ding-doc.dingtalk.com/doc#/serverapi2/skn8ld

釘釘有回調(diào)事件流程,有哪些回調(diào)?比如:通訊錄回調(diào)、審批回調(diào)等等,拿通訊錄回調(diào)來(lái)說(shuō),就是當(dāng)你公司組織架構(gòu)發(fā)生變動(dòng)時(shí),會(huì)自動(dòng)觸發(fā)你自己注冊(cè)的回調(diào)地址,然后根據(jù)回調(diào)信息做一些自定義的處理,不得不說(shuō),釘釘真的是解決了協(xié)同辦公的很多問(wèn)題,非常nice,但就回調(diào)事件來(lái)說(shuō),每個(gè)企業(yè)只能注冊(cè)一個(gè)回調(diào)地址,即使你要監(jiān)聽(tīng)的是不同的事件、即使還有其他業(yè)務(wù)線(xiàn)需要用到回調(diào),也只能不多于一個(gè)回調(diào),當(dāng)然這都是出于人家服務(wù)多方面考慮的設(shè)計(jì),廢話(huà)不多說(shuō),

好,流程:

  一個(gè)注冊(cè)端向釘釘發(fā)送注冊(cè)請(qǐng)求,釘釘callback你自己的服務(wù)url,必須是公網(wǎng)訪問(wèn)的地址,并且該地址返回釘釘json數(shù)據(jù)來(lái)告訴釘釘回調(diào)成功

  注冊(cè)成功之后這個(gè)地址就可以接收釘釘?shù)幕卣{(diào)post請(qǐng)求,做一些自定義處理,記得返回json

好,代碼

1、注冊(cè)端

mport requests, json


class DingDingCallBack(object):
    def __init__(self):
        self.appsecret=''
        self.appkey=''
        self.api_url = "https://oapi.dingtalk.com/gettoken?appkey=%sappsecret=%s"%(self.appkey,self.appsecret)
        self.aes_key = ""
        self.callbackUrl = "回調(diào)url"
        self.headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36',
            'username':'zhangsan',
            'password':'123456'
        }

    def get_token(self):
        res = requests.get(self.api_url)
        if res.status_code == 200:
            str_res = res.text
            token = (json.loads(str_res)).get('access_token')
            return token

    def regist_call_back(self):
        url = 'https://oapi.dingtalk.com/call_back/register_call_back?access_token={ACCESS_TOKEN}'.format(ACCESS_TOKEN=self.get_token())
        data = {
            "call_back_tag": ["bpms_task_change", "bpms_instance_change"], # 審批回調(diào)
            "token": "qxN3cm",
            "aes_key": self.aes_key,
            "url":self.callbackUrl,
            }
        data1 = json.dumps(data)
        response = requests.post(url, headers=self.headers, data=data1)
        print(response)
        print(response.text)

    def query_callback(self):
        url = 'https://oapi.dingtalk.com/call_back/get_call_back?access_token={ACCESS_TOKEN}'.format(ACCESS_TOKEN=self.get_token())
        response = requests.get(url, headers=self.headers, )
        print(response)
        print(response.text)


    def update_call_back(self):
        url = 'https://oapi.dingtalk.com/call_back/update_call_back?access_token={}'.format(self.get_token())
        data = {
            "call_back_tag": ["bpms_task_change", "bpms_instance_change","user_add_org","user_leave_org","org_dept_create","org_dept_modify","org_dept_remove"],
            "token": "自定義字符串",
            "aes_key": self.aes_key,
            "url":self.callbackUrl
            }
        data1 = json.dumps(data)
        response = requests.post(url, headers=self.headers, data=data1)
        print(response)
        print(response.text)

    def get_fail(self):
        url = 'https://oapi.dingtalk.com/call_back/get_call_back_failed_result?access_token={}'.format(self.get_token())
        response = requests.get(url, headers=self.headers, )
        print(response.text)# todo 刪除回調(diào)
    def delete_callback(self):
        url = 'https://oapi.dingtalk.com/call_back/delete_call_back?access_token={ACCESS_TOKEN}'.format(ACCESS_TOKEN=self.get_token())
        result = requests.get(url)
        print(result)
        print(result.text)

#
if __name__ == '__main__':
    dingOBJ = DingDingCallBack()
    # todo 獲取釘釘token
#     # dingOBJ.get_token()
    # todo 獲取回調(diào)失敗
#     dingOBJ.get_fail()
    # todo 注冊(cè)回調(diào)
    # dingOBJ.regist_call_back()
    # todo 查詢(xún)回調(diào)事件
    dingOBJ.query_callback()
    # todo 修改回調(diào)事件
#     dingOBJ.update_call_back()
    # todo 刪除回調(diào)
    # dingOBJ.delete_callback()

2、回調(diào)端:以下示例代碼為python2,django 框架

# -*- coding:utf-8 -*-

from django.shortcuts import render
from django.http import JsonResponse,HttpResponse
from django.views.generic import View
from django.views.decorators.csrf import csrf_exempt
from DingCrypto import DingCrypto
import random,string,time,json,requests,simplejson
# Create your views here.from ast import literal_eval


encodingAesKey = ''
key = ''
token = '自定義字符串'
appsecret = ''
appkey = ''

api_url = "https://oapi.dingtalk.com/gettoken?appkey=%sappsecret=%s"%(appkey,appsecret)


def randam_string(n):
    ran_str = ''.join(random.sample(string.ascii_letters + string.digits, n))
    return ran_str

# 注冊(cè)回調(diào)
@csrf_exempt
def workOrderCallback(request):
    if request.method == 'GET':
        return JsonResponse({'code':200,'msg':'ok'})


    if request.method == 'POST':
        print request.GET
        dingCrypto = DingCrypto(encodingAesKey,key)
        nonce = randam_string(8)
        timestamp = str(int(round(time.time())))
        encrpyt = dingCrypto.encrypt('success')
        # print nonce,timestamp,token,encrpyt
        signature = dingCrypto.generateSignature(nonce=nonce,timestamp=timestamp,token=token,msg_encrypt=encrpyt)
        new_data = {
            'data': {
                'msg_signature': signature,
                'timeStamp': timestamp,
                'nonce': nonce,
                'encrypt': encrpyt
            },
        }


        encrpyt11 = dingCrypto.decrypt(encrpyt)

        return JsonResponse(new_data.get('data'))

# 響應(yīng)回調(diào)
class CallBack(View):
    def get(self,request,*args,**kwargs):
        return JsonResponse({'code':200,'msg':'ok'})

    def get_token(self):
        res = requests.get(api_url)
        if res.status_code == 200:
            str_res = res.text
            token = (json.loads(str_res)).get('access_token')
            return token


    def post(self,request,*args,**kwargs):

        # data = request.GET

        dingCrypto = DingCrypto(encodingAesKey, key)
        nonce = randam_string(8)
        timestamp = str(int(round(time.time())))
        encrpyt = dingCrypto.encrypt('success')
        # signature = dingCrypto.generateSignature(nonce=nonce,timestamp=timestamp,token=token,msg_encrypt=encrpyt)
        callback = json.loads(dingCrypto.decrypt(json.loads(request.body).get('encrypt')))
        if callback['EventType'] == 'bpms_instance_change': # 審批實(shí)例開(kāi)始,結(jié)束
            url = 'https://oapi.dingtalk.com/topapi/processinstance/get?access_token={ACCESS_TOKEN}'.format(ACCESS_TOKEN=self.get_token())
            instace_ = {
                "process_instance_id": callback['processInstanceId']
            }
            data2 = json.dumps(instace_)
            req = requests.post(url,data=data2)
            data = literal_eval(str(req.text)).get('process_instance')
            excute_workorder(callback['processInstanceId'],data)
        elif callback['EventType'] == 'bpms_task_change':  # 審批任務(wù)開(kāi)始,結(jié)束,轉(zhuǎn)交
            print 'bpms_task_change'
        elif callback['EventType'] == 'user_add_org':
            print '用戶(hù)增加'elif callback['EventType'] == 'user_leave_org':
            print '用戶(hù)離職'
        elif callback['EventType'] == 'org_dept_create':
            print '組織架構(gòu)添加'elif callback['EventType'] == 'org_dept_modify':
            print '組織架構(gòu)變更'elif callback['EventType'] == 'org_dept_remove':
            print '組織架構(gòu)刪除'return HttpResponse(encrpyt)

到此這篇關(guān)于python注冊(cè)釘釘回調(diào)事件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python注冊(cè)釘釘回調(diào)事件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python實(shí)現(xiàn)釘釘發(fā)送報(bào)警消息的方法
  • python3實(shí)現(xiàn)釘釘消息推送的方法示例
  • python 調(diào)用釘釘機(jī)器人的方法
  • Python調(diào)用釘釘自定義機(jī)器人的實(shí)現(xiàn)
  • python釘釘機(jī)器人運(yùn)維腳本監(jiān)控實(shí)例
  • Python制作釘釘加密/解密工具
  • Python實(shí)現(xiàn)釘釘訂閱消息功能
  • Python第三方包之DingDingBot釘釘機(jī)器人
  • 如何基于python對(duì)接釘釘并獲取access_token
  • 詳解使用python3.7配置開(kāi)發(fā)釘釘群自定義機(jī)器人(2020年新版攻略)
  • 淺談Python 釘釘報(bào)警必備知識(shí)系統(tǒng)講解

標(biāo)簽:辛集 雅安 七臺(tái)河 贛州 西安 許昌 渭南 濰坊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python注冊(cè)釘釘回調(diào)事件的實(shí)現(xiàn)》,本文關(guān)鍵詞  python,注冊(cè),釘釘,回調(diào),事件,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python注冊(cè)釘釘回調(diào)事件的實(shí)現(xiàn)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于python注冊(cè)釘釘回調(diào)事件的實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日韩国产欧美亚洲| h版电影在线播放视频网址| 2020亚洲男人天堂| 97超碰人人模人人爽人人看| 日韩久久免费视频| 欧美福利在线视频| 国产精品国产三级国产试看| 欧美酷刑日本凌虐凌虐| 色综合天天狠天天透天天伊人| 国产精品亚洲午夜一区二区三区| 在线不卡一区二区三区| 久久久久久久国产| 大地资源高清在线视频观看| 中文字幕亚洲无线码在线一区| www.狠狠爱| 免费a级片在线观看| 无码人妻一区二区三区线| 午夜日韩成人影院| 国产精品视频最多的网站| 交videos老少配com| 亚洲mv大片欧洲mv大片| 国产黄色片免费在线观看| 日韩午夜电影网| 中文字幕永久视频| 五月婷婷综合色| 午夜免费播放观看在线视频| 另类小说综合欧美亚洲| 国产女主播喷水高潮网红在线| 日韩毛片在线免费观看| 国产麻豆久久| av亚洲一区二区三区| 成人av在线一区二区| 日韩国产精品视频| 亚洲黄色免费电影| av免费播放网址| 久久亚洲综合网| 国产三区二区一区久久| 岛国一区二区三区| 五月天综合激情| 97福利网站在线观看视频| 久久精品国产www456c0m| 亚洲福利视频网站| 国产精品久久久久久亚洲调教| 欧美性xxxx图片| 黑人巨大精品欧美黑白配亚洲| 欧洲精品乱码久久久久蜜桃| 美国黄色一级毛片| 亚洲欧美另类在线视频| caoporn成人免费视频在线| 99热这里有精品| 午夜精品一区二区三区视频免费看| а√天堂官网中文在线| 1插菊花综合| 日韩成人伦理| 自拍偷拍欧美亚洲| 亚洲色图清纯唯美| 国产一区二区三区四区大秀| www日韩在线| 精品久久久久久无码人妻| 日韩在线免费视频观看| 国产精品69久久| 伊人福利在线| 精品欧美乱码久久久久久1区2区| 亚洲一区二区电影| 午夜精品久久久久久久99| 成人满18在线观看网站免费| 熟妇高潮精品一区二区三区| 久久久久性色av无码一区二区| 一本高清dvd不卡在线观看| 国产精品88av| 久久久国产精华| www.五月激情| 国内外成人激情视频| 韩国福利视频一区| 日本视频在线免费| 亚洲视频一区二区在线观看| 成人区人妻精品一区二| 欧美性xxxxx极品视频| 亚洲mv在线看| 国产视频久久网| **亚洲第一综合导航网站| 色偷偷亚洲第一综合| 日韩美女精品在线| 18禁免费无码无遮挡不卡网站| 国产亚洲一区二区在线观看| 福利一区福利二区微拍刺激| 99免在线观看免费视频高清| 97影院秋霞午夜在线观看| 成人av在线资源网站| 亚洲一区国产视频| 欧美一区二区三区在线视频| 欧美性生活一区| 久久久久久久久久久久久久国产| 亚洲天堂男人网| 丰满岳乱妇一区二区| 黑巨人与欧美精品一区| 四虎海外永久免费网址| 亚洲综合色噜噜狠狠| 欧美限制电影| 成人激情综合| 久久久久久久久久久久久久久国产| 国产v综合v| 国产成人精品视| youjizz在线播放| 风流老熟女一区二区三区| av在线免费观看国产| 日韩欧美国产亚洲| 国产中文在线观看| 国产黑丝一区二区| 国产欧美一区二区三区网站| 国产sm主人调教女m视频| 天天操天天擦| 亚洲欧美综合区自拍另类| 欧美a大片欧美片| 青娱乐在线视频免费观看| 亚洲AV无码一区二区三区少妇| a一区二区三区| 91亚洲国产成人久久精品| 日韩av电影天堂| 国产在线观看91一区二区三区| 一区二区三区在线高清| 高清欧美性猛交xxxx黑人猛交| 国产对白国语对白| 肉色欧美久久久久久久免费看| 日韩视频免费在线| 欧美成人精品一区二区男人小说| 欧美污视频久久久| 午夜在线观看视频网站| 欧美极品xxxx| 精品免费一区二区三区| 欧美激情精品久久久久| 人妻体内射精一区二区三区| a视频在线播放| 激情小视频网站| 永久av免费在线观看| 久久综合色鬼综合色| 成人黄页在线观看| 麻豆乱码国产一区二区三区| 中文字幕丰满人伦在线| 国产精品国产三级国产有无不卡| 污视频在线免费观看网站| 国产日韩在线亚洲字幕中文| 欧美丰满少妇人妻精品| 久久蜜桃av一区精品变态类天堂| 免费看的黄色大片| 国产成人精选| 欧美福利一区二区三区| 青青国产在线视频| 亚洲欧美一区二区三区孕妇| 妞干网在线观看视频| 午夜精品福利一区二区三区av| 亚洲伦在线观看| 国产精品综合不卡av| 久久久噜噜噜久久狠狠50岁| 亚洲a在线播放| 国产午夜亚洲精品不卡| 大桥未久在线播放| 久久男人中文字幕资源站| 91精品国产综合久久久蜜臀图片| 亚洲欧美成aⅴ人在线观看| 国产精品毛片久久久| 日韩欧美一级二级三级久久久| 91在线观看欧美日韩| 91蝌蚪|人| 国产熟妇一区二区三区四区| 在线观看你懂得| segui88久久综合9999| 老司机精品视频在线| 日韩毛片高清在线播放| 欧美午夜激情小视频| 在线观看日韩专区| 日韩一级片免费视频| 午夜dv内射一区二区| 黄色免费看片| 亚洲少妇久久久| 国产精品美女免费看| 欧美 日韩 国产 成人 在线| 91久久精品国产91久久| 色与欲影视天天看综合网| 99热这里只有精品8| 69ww免费视频播放器| 日韩美女精品在线| www.黄色国产| 国产女主播喷水视频在线观看| 国产嫩草一区二区三区在线观看| 欧美日韩亚洲第一| 99爱视频在线观看| 你懂的在线视频| 一区二区三区福利| 欧美激情成人| 成年人免费观看的视频| 亚洲国产成人精品女人| 久久久久久91| 久久九九亚洲综合| 亚欧视频在线观看| 国产日韩成人内射视频| 搡女人真爽免费午夜网站| 日韩欧美国产综合在线| 国产传媒在线播放| 亚洲第一视频网| 亚洲av无码一区二区三区性色| 不卡欧美aaaaa| 成人久久一区二区| 欧美风狂大伦交xxxx| 久久精品国产亚洲高清剧情介绍| 在线观看亚洲黄色| 中文字幕视频在线观看| 中文字幕在线播放| 日韩三级电影网站| 国产伦精品一区二区三区精品视频| 亚洲自拍偷拍第一页| 婷婷久久久久久| 激情高潮到大叫狂喷水| 国产欧美在线观看免费| 日韩精品丝袜美腿| 久久久91精品国产一区二区精品| 色欲色香天天天综合网www| 欧美日韩一区自拍| 天天看天天摸天天操| 91av在线免费视频| 草草影院在线观看| 韩国三级电影一区二区| 欧美成人小视频| 国产乱码精品一区二三赶尸艳谈| 亚洲成人一二三区| 欧美日韩国产在线看| 天堂在线观看视频| 久久久亚洲高清| 欧美日韩精品一区二区三区在线观看| 在线观看国产精品网站| 日本在线免费播放| 精品96久久久久久中文字幕无| 亚洲综合影院| 第一区第二区在线| 九色91偷拍| av片在线观看免费| 日韩精品一区中文字幕| 亚洲天堂2014| 国产天堂在线播放视频| 欧美片一区二区三区| 9国产精品视频| youjizz国产精品| 男人天堂av网| 国产剧情在线观看| 色资源二区在线视频| 成人免费福利片| 中文字幕有码在线播放| 天堂网www在线网| 中文在线www| 91精品久久久久久久久久不卡| 欧美激情第四页| 综合在线观看色| 中文字幕一区日韩电影| 亚洲精选国产| av毛片久久久久**hd| 色视频欧美一区二区三区| 欧美www在线| 蜜桃在线一区二区| 色婷婷综合久色| av免费精品一区二区三区| av白虎一区| 精品国产18久久久久久| 合欧美一区二区三区| 日韩中文字幕在线一区| 久草福利在线视频| 国产无码精品一区二区| 日韩视频精品在线观看| 肉大捧一出免费观看网站在线播放| 国产视频精品免费播放| 欧美激情一区二区三区成人| 涩涩视频网站| 99r精品视频| www.污污视频| 人妻大战黑人白浆狂泄| 黄色影院一级片| 中文字幕在线播放av| www.久久com| 91精品国产九九九久久久亚洲| 少妇欧美激情一区二区三区| 波多野结衣视频在线观看| 国产美女久久久久久| 国产午夜伦鲁鲁| 国产经典一区| 久久婷婷国产精品| 蜜臀精品一区二区三区在线观看| 黑人精品欧美一区二区蜜桃| 日韩欧美三区| 中文字幕永久在线不卡| 丰满熟妇乱又伦| 国产精品电影观看| 污视频在线看网站| 成人国产精品色哟哟| h视频免费网站| 一区二区在线电影| 精品少妇一区二区| 国产传媒久久文化传媒| 国产亚洲精品超碰| 水蜜桃亚洲一二三四在线| 黄色片子免费看| 在线免费观看黄色av| 日韩精品免费在线视频| 欧美日韩电影在线播放| 欧美激情国内偷拍| 国产麻豆电影在线观看| 亚洲精品免费播放| 久久伊人国产| 日本色综合中文字幕| 国产精品毛片一区二区三区| 国产成人在线电影| 国产成人调教视频在线观看| 久久av高潮av| 一区视频网站| 福利一区二区免费视频| 国产高清在线精品一区二区三区| 性久久久久久久久久久久久久| xf在线a精品一区二区视频网站| 伊人精彩视频| 51久久精品夜色国产麻豆| 午夜精品爽啪视频| 欧美日本国产一区| 久久精品国产理论片免费| 精品人妻无码一区二区三区换脸| 激情图片中文字幕| 男人插曲女人视频免费| 亚洲黄色小说图片| 欧美 国产 小说 另类| 天堂午夜在线| 国产视频一区在线观看|