立即注册  找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 70|回复: 9

问下开发TG bot交互的问题

[复制链接]

问下开发TG bot交互的问题

[复制链接]

30

主题

215

回帖

796

积分

高级会员

积分
796
深海空间

30

主题

215

回帖

796

积分

高级会员

积分
796
2022-4-25 09:13:02 | 显示全部楼层 |阅读模式
本帖最后由 深海空间 于 2022-4-25 09:51 编辑

之前一直使用的一个影视资料网站现在要求app才能使用,不想下载,所以打算手搓一个tg bot,发送编号后就去官网爬取对应的影片预览图返回来,现在基本能达到预期,但是目前是通过 "/指令 编号" 的形式查询,比如 /img fc2-222222;

现在我想要像botfather一样的交互,先
发送指令过去,再发送内容
,问题就是怎么判断第二次发送的就是我要查询的东西?

比如截图里的,我第一次/newbot,然后botfather会叫我输入一个名字,我输入123,我想问下他是怎么知道123是我回复给/newbot的名字?而不是回复给其他指令的?他是通过什么逻辑判断的?有没有开发过bot的大大佬呀



回复

使用道具 举报

45

主题

770

回帖

2632

积分

金牌会员

积分
2632
helone

45

主题

770

回帖

2632

积分

金牌会员

积分
2632
2022-4-25 09:27:52 | 显示全部楼层
可以记一个缓存标记,标记的key是tg id之类的,缓存存在这个tg id的消息按照内容处理,不存在按照指令处理
回复

使用道具 举报

107

主题

978

回帖

3415

积分

论坛元老

积分
3415
woniu

107

主题

978

回帖

3415

积分

论坛元老

积分
3415
2022-4-25 09:24:34 | 显示全部楼层
指令就那几个 如果你发的内容跟指令字符串不匹配,那就默认为内容啊

再有就是,如果不是指令,判断下上次下发的是哪个指令,不就能关联上了
回复

使用道具 举报

26

主题

115

回帖

560

积分

高级会员

积分
560
Vic

26

主题

115

回帖

560

积分

高级会员

积分
560
2022-4-25 09:14:47 | 显示全部楼层
redis
回复

使用道具 举报

30

主题

215

回帖

796

积分

高级会员

积分
796
深海空间 楼主

30

主题

215

回帖

796

积分

高级会员

积分
796
2022-4-25 09:27:53 | 显示全部楼层

Vic 发表于 2022-4-25 09:14

redis

请问下逻辑是把用户发送过来的东西都先记录起来,然后通过判断用户上一次输入的内容决定是否是回复给对应指令的吗?比如/newbot的时候,先存起来,然后用户第二次发送的内容(比如发了个ABC)时候如果查找到上次发送的是/newbot,那么就可以将ABC确定为用户要设置的机器人名字?我这样想对吗
回复

使用道具 举报

30

主题

215

回帖

796

积分

高级会员

积分
796
深海空间 楼主

30

主题

215

回帖

796

积分

高级会员

积分
796
2022-4-25 09:14:00 | 显示全部楼层

helone 发表于 2022-4-25 09:27

可以记一个缓存标记,标记的key是tg id之类的,缓存存在这个tg id的消息按照内容处理,不存在按照指令处理 ...

你看下是不是我5楼发的那种处理逻辑
回复

使用道具 举报

30

主题

215

回帖

796

积分

高级会员

积分
796
深海空间 楼主

30

主题

215

回帖

796

积分

高级会员

积分
796
2022-4-25 09:29:54 | 显示全部楼层

woniu 发表于 2022-4-25 09:24

指令就那几个 如果你发的内容跟指令字符串不匹配,那就默认为内容啊

再有就是,如果不是指令,判断下上次 ...

你看下是不是我5楼发的那种处理逻辑
回复

使用道具 举报

0

主题

7

回帖

26

积分

新手上路

积分
26
Alita

0

主题

7

回帖

26

积分

新手上路

积分
26
2022-4-25 09:27:00 | 显示全部楼层
查看对应tg bot api的conversation

例如telethon的
https://docs.telethon.dev/en/stable/quick-references/objects-reference.html?highlight=conversation#conversation
回复

使用道具 举报

14

主题

182

回帖

932

积分

高级会员

积分
932
tsdog

14

主题

182

回帖

932

积分

高级会员

积分
932
2022-4-25 09:31:47 | 显示全部楼层
你把交互逻辑要改一下
换成会话。每个用户单独一个会话,而不是单独的 /order 这个形式
会话的话可以用redis也可以数据库,以sessionid形式这样的。就像,用户中心。



我是萌新

请你放心


回复

使用道具 举报

30

主题

215

回帖

796

积分

高级会员

积分
796
深海空间 楼主

30

主题

215

回帖

796

积分

高级会员

积分
796
2022-4-25 09:24:00 | 显示全部楼层

tsdog 发表于 2022-4-25 10:01

你把交互逻辑要改一下
换成会话。每个用户单独一个会话,而不是单独的 /order 这个形式
会话的话可以用redi ...

刚才我还在想,用户A发了指令,用户B内容,bot会把返回结果返回给B,你这种会话的逻辑刚好可以解决这个问题 海事loc大佬多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|HS2V主机综合交流论坛

GMT+8, 2024-12-23 02:34 , Processed in 0.025437 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表