基于python的flask框架自动回复抖音私信

前言

最近接了个小需求,有点意思,写个博客~

需求内容:我们有一个游戏抖音号,需要对发私信给我们的用户自动回复一个激活码字符串

功能很简单,但是面对抖音这个第三接口文档写的一坨翔且找不到技术客服的大公司,还是死了不少脑细胞。

(备注:没有后端开发经验的朋友,这篇文章可以略过了,因为需要自己写监听接口以及部署和配置nginx)

~

~

闲话不多说了,先讲流程:

第一步:

首先,这个功能只支持验证过的企业抖音号,so~ 个人抖音号就不要想了

另外你最好有一个云服务器和一个可以用的域名以及https证书。

以上东西准备好,先登录抖音开放平台:抖音开放平台地址

然后创建个账号或者用抖音号去登录。

然后点击管理中心,去创建一个应用

内容随便填吧,审核还是比较宽松的,但是务必填写真实有效。

###

创建完之后,预计1-3个工作日审核,审核通过后你就能看到你的应用了。

###

点击详情,进入查看,以下是我的应用详情:

注意互动管理中的获取并管理评论和私信,这个权限状态是已通过,没通过的要申请下等带审核。

###

然后你要做的就是根据client_keyclient_secret两个参数去获取open_idaccess_token

案例链接如下:

https://open.douyin.com/platform/oauth/connect?client_key=aw7k41dqsr8udns2&response_type=code&scope=video.comment,im,aweme.share,user_info,video.create,video.delete,video.data,video.list,enterprise.im,enterprise.data&redirect_uri=http://baidu.com&state=aHR0cDovL3oxLWNvbnNvbGU2LWxsQmxhY23t=

把上面这个链接内容改一下,第一个client_key换成你的应用,redirect_url改成你创建应用时的那个(一定要是可以访问的域名),可以在基础信息里面看授权域回调,state我们这随便填个长点字符串就好了,具体功能见抖音开发文档。

链接修改完后复制到浏览器打开(出于保密,我的url里信息都是虚拟的,你们不要尝试)

打开后是一个二维码页面:

###

用你的企业抖音号扫码授权,授权成功会重定向到一个新的页面,千万不要关闭!!!这个页面的url会附带上一个code参数,记得复制保存,后面用的上。

###

接下来我们拿着这个code值去获取open_idaccess_token

代码直接给你贴上,把三个参数替换成你应用的值:

import requestsclient_key = 'awkjaslkdjv7dns2'
client_secret = 'oiahsdoihi32j0jdo2jd23jjd02'
code = 'askjdhioh23oijisdfkjasd'headers = {"Content-Type": "application/json","Accept": "application/json", }# 获取access_token
def get_access_token():data = {"client_key": client_key,  # 应用唯一标识"client_secret": client_secret,  # 应用唯一标识对应的密钥"code": code,  # 扫码后获取的授权码"grant_type": "authorization_code",  # 默认"authorization_code"即可}url = "https://open.douyin.com/oauth/access_token/"res = requests.get(url=url, headers=headers, params=data)print(res.json())if __name__ == '__main__':get_access_token()

返回值案例: 

{"data":{"access_token":"act.11913a0bf8c24c154544887291833618d0sZuFLjrTfdzWFKdQ0wRv85xG6YEX","captcha":"","desc_url":"","description":"","error_code":0,"expires_in":1296000,"open_id":"b715c9c8-2897-4788-8591-72fb598f0195","refresh_expires_in":2592000,"refresh_token":"rft.64e06c379c3f5bad3e42f918ced40671MiV8ZKf60HzuvjjiQfsyJbktfOZ3","scope":"video.comment,im,aweme.share,user_info,video.create,video.delete,video.data,video.list,enterprise.im,enterprise.data"},"message":"success"}

取出access_tokenopen_id的值,复制 留有大用!

###

接下来返回抖音开放平台,从管理中心进入应用的详情。

监听接口配置好(接口代码待会附上),验证通过后,Webhooks里的订阅时间全部拉满就行了

关于这个监听接口,我简单说下:

抖音开放平台第一次会给你这个监听url发送一个post请求来验证是否可用,然后验证通过后才算配置完成。

开放平台发送的验证请求示例(具体去抖音开放文档看):

{"event": "verify_webhook","client_key": "","content": {"challenge": 12345}
}

当你收到开放平台 POST 验证请求时,你需要解析出 challenge 值,并立即返回该 challenge 值作为响应。

{"challenge": 12345
}

 我这边监听接口的代码如下:(接口服务部署以及nginx配置域名你们自己去百度吧)

from flask import Flask, requestapp = Flask(__name__)# 处理中文编码
app.config['JSON_AS_ASCII'] = False# 跨域支持
def after_request(resp):resp.headers['Access-Control-Allow-Origin'] = '*'return respapp.after_request(after_request)#  抖音监听接口
@app.route("/ceshi", methods=["GET", "POST"])
def getMsg_ceshi():try:if request.method == "POST":json_data = request.get_json()event = json_data.get("event")# 验证if event == "verify_webhook":CHALLENGE = json_data.get("content").get("challenge")return {"challenge": CHALLENGE}# 接收私信elif event == "receive_msg":from_user_id = json_data.get("from_user_id")to_user_id = json_data.get("to_user_id")client_key = json_data.get("client_key")message_type = json_data.get("content").get("message_type")message_info = json_data.get("content").get("text")try:# 将用户消息存入数据库(我就省略不写了)passexcept BaseException as e:print("插入失败:", e)else:return {"respCode": '204', "data": "", "message": "未知事件类型,暂不处理"}else:return {"respCode": '203', "data": "", "message": "不支持get请求"}except:return {"respCode": '503', "data": "", "message": "处理失败"}if __name__ == "__main__":app.run(host='0.0.0.0', port=8008, debug=True)

关于这个接口的功能我简单说下,

当你在Webhooks配置监听url时,他会发送一个验证请求,所以event=='verify_webhook'代表在响应这个验证。

验证通过后,你就能收到别人给你的企业抖音号发送私信了,此时event=='receive_msg',这个时候你要做的就是把内容存到mysql数据库,以便后面使用。

然后,接下来的事就简单了,去数据实时读取这些私信然后一一回复,

回复功能的代码我也贴出来:

import requests
import jsonopen_id = "0f8a8952-4f85-46ba-9b1c-ff3bbfd23a31"
access_token = "act.298f6a0edb2b95a8ee1d0d123scd4b0fVRCiHmYgEIt2i3yYGr7GuTZ0XGKp"headers = {"Content-Type": "application/json","Accept": "application/json", }# 发送私信给用户
def seed_message_info(to_user_id):params = {"open_id": open_id,"access_token": access_token,}data = {"to_user_id": to_user_id,  # 用户唯一标识,用户发私信给你,你的接听接口会收到这个值"message_type": "text",  # 默认文本类型"persona_id": "",  # 客服id,传则走客服会话,否则为普通会话"content": '{"text":"哎呀,卧槽"}',"client_msg_id": ""}url = "https://open.douyin.com/enterprise/im/message/send/"res = requests.post(url=url, headers=headers, params=params, data=json.dumps(data))print(res.text)if __name__ == '__main__':seed_message_info("223cacdd-4afd-40ac-9cfa-b1c94b158834")

哎呀,腰身背疼,剩下的自己悟吧,不写了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/51522.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音自动评论回复留言测试

主要实现方式是android的无障碍。目前还在优化中 可以联系我进行交流 二。搜索关键词;寻找关键词相关视频。 三。点击视频播放并在第一条评论【置顶与不置顶都可】下进行自定义文字留言。 四。操作完以上点击下个视频继续留言, 五,留言内容…

怎样用python定位别人在哪_python程序员教你用微信给对方定位!你说回家!却还在外面鬼混?...

跟我说回家,却还在外面鬼混? 其实很多情侣之间存在很多这样的信任问题,不相信他,去查岗,可能会恶化两人之间的关系;比如跟我说回家了,但是想知道他是否真的回家了,打电话、打视频查…

如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝(详解)

题目: 某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?” 答案是5瓶 方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子&#xff0c…

python垃圾回收 (GC) 机制

Python 能够自动进行内存分配和释放,但了解 python 垃圾回收 (garbage collection, GC) 的工作原理可以帮助你写出更好更快的 Python 程序。Python 使用两种算法进行垃圾回收,分别是引用计数 (Reference Counting) 和分代回收 (Generational garbage col…

经典贪心问题之圣诞老人的礼物

目录 题目信息: 题目分析: 题解代码: 题目信息: 注:4指一共有四箱糖果,15指雪橇共能带走的最大重量为15,接下来输出4行,每行两个数据, 第一个数据指这箱糖果的价值&a…

【Python】《点燃我,温暖你》,快来Get李峋同款爱心代码

前言 hello,大家好 最近有个剧挺火的 就是那个程序员的剧,叫《点燃我,温暖你》 最近听说很火呀,那作为程序员,Python中的战斗机的小编,能不给大家安排一波! 怎么说呢,用这个表白也可…

隔壁老王出喝酒去了,留下女友半夜一个人在家,我用python给她写了一个

哈喽大兄弟们 今日重点: 划重点: 1、python开发小游戏,pygame环境搭建; 2、给失眠的小姐姐开发一个迷宫小游戏。 代码干货满满,建议收藏实操!!!有问题及需要,请留言哦~~ …

程序员用10分钟写了个旅游管家APP,女友用了直呼贴心

「呐,你知道吗? 听说樱花飘落的速度是秒速五厘米哦。」 听到阿珍又念起这句经典台词,阿强,这个对自然界的花期不太敏感的程序员,也收到了“樱花开了”的讯号。 春天的樱花不能错过,赏樱是写进阿珍价值观的…

python实现垃圾分类程序,对于要处理的垃圾,判断该投放到哪个类别的垃圾桶中

python实现垃圾分类程序,对于要处理的垃圾,判断该投放到哪个类别的垃圾桶中 一、编程题目 编程题目:输入要处理的垃圾,空格分隔,判断并输出各个垃圾应该投放到哪个类别的垃圾桶中。其中垃圾有以下分类: 废…

Python之美[从菜鸟到高手]--Python垃圾回收机制及gc模块详解

Python中的垃圾回收是以引用计数为主,标记-清除和分代收集为辅。引用计数最大缺陷就是循环引用的问题,所以Python采用了辅助方法。本篇文章并不详细探讨Python的垃圾回收机制的内部实现,而是以gc模块为切入点学习Python的垃圾回收机制&#x…

【PythonGUI小程序】相信我,这是最in的n种骰子梭哈小游戏新玩法,好玩到丧心病狂~(文中有惊喜)

导语 哈喽!大家晚上好,我是木木子吖,很久没给大家更新游戏代码的类型啦~ 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 在长沙这个美食遍地的城市&#xff…

李峋同款心跳Python代码

李峋同款心跳Python代码【按头安利《点燃我温暖你》】 import random from math import sin,cos,pi,log from tkinter import * CANVAS_WIDTH 640 CANVAS_HEIGHT 640 CANVAS_CENTER_X CANVAS_WIDTH / 2 CANVAS_CENTER_Y CANVAS_HEIGHT / 2 IMAGE_ENLARGE 11 HEART_COLOR …

【Python案例】Python实现垃圾分类APP(附带微信小程序)

嗨嗨,大家好呀,我是小圆~ 今天给你们分享一个有趣的东西 如何利用现有的工具来实现一个垃圾分类的应用 主要做了三个核心内容: 对比现有垃圾分类服务,挑选一个合适并编码实现开发桌面版垃圾分类APP开发垃圾分类微信小程序 上…

【python】制作李峋同款爱心代码,也不是很难嘛~

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 最近,一部名叫《点燃我,温暖你》得电视剧冲进了大家得视野~ 其中李峋用代码做出的红色跳动的爱心,一下子跳到朱韵的心坎里,同样也跳到我们的心坎 今天,我们就用py…

太棒了 | 手把手教你用Python做一个 “举牌小人” 生成器!

教你如何使用Selenium库 本文禁止转载,如有违反,严肃处理! 前几天写了一个婴儿级别的爬虫图文教程,大家很喜欢。戳我查看:3000字 “婴儿级” 爬虫图文教学 | 手把手教你用Python爬取 “实习网”! 趁热打铁…

李峋的跳动爱心代码(python)

运行效果 代码: """ author:Athena Geng """ import random from math import sin, cos, pi, log from tkinter import *CANVAS_WIDTH 640 # 画布的宽 CANVAS_HEIGHT 480 # 画布的高 CANVAS_CENTER_X CANVAS_WIDTH / 2 # 画布中…

李峋爱心Python代码

李峋爱心Python代码: # codinggbk import random from math import sin, cos, pi, log from tkinter import * CANVAS_WIDTH 640 CANVAS_HEIGHT 480 CANVAS_CENTER_X CANVAS_WIDTH / 2 CANVAS_CENTER_Y CANVAS_HEIGHT / 2 IMAGE_ENLARGE 11 HEART_COLOR "…

李峋同款爱心python实现

爱心运行结果截图: import random from math import sin, cos, pi, log from tkinter import *CANVAS_WIDTH 840 # 画布的宽 CANVAS_HEIGHT 680 # 画布的高 CANVAS_CENTER_X CANVAS_WIDTH / 2 # 画布中心的X轴坐标 CANVAS_CENTER_Y CANVAS_HEIGHT / 2 # 画…

OpenAI CEO创建的Worldcoin正式推出「世界币」:AI 时代的数字通行证?

编辑:秦晋 据外媒Semafor独家报道,知情人士透露,由 OpenAI 首席执行官 Sam Altman 创建的Worldcoin 代币将于今日推出。 在硅谷引发争议的Worldcoin 代币试图解决两个棘手问题:在线身份认证与收入不平等问题。 据知情人士透露&…

华为鸿蒙HarmonyOS 4定档8月;ChatGPT之父的加密货币正式上线;微软必应聊天将推出重新生成答案功能|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…