V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  icoming  ›  全部回复第 3 页 / 共 16 页
回复总数  318
1  2  3  4  5  6  7  8  9  10 ... 16  
@lkkl007
@AllenTsui

不是近几天编出来的话吗?
240 天前
回复了 haoyu7 创建的主题 程序员 为什么阿里小号天天抢不到号
阿里小号的应用不更新了,不好用。不如用运营商的小号
247 天前
回复了 hepin1989 创建的主题 生活 发现穷人的孩子真的难翻身
为什么要管上一代 4 个人的养老问题呢?全力辅助下一代和照顾你老婆就行了啊。管别人干嘛,人的欲望是没有止尽的,你给的越多,他们要的就越多。
250 天前
回复了 riseD 创建的主题 生活 父亲走了。我好难受。
节哀
254 天前
回复了 q534 创建的主题 生活 买了个超级舒服的枕头。
感谢,支持!
租的敢用?直接出掉啊,多少钱出 @我一下,合适就买了。。。
下单默认勾选允许放快递柜不就行了,涨什么价
260 天前
回复了 996jiucai 创建的主题 生活 也许是樊胜美
@Jimmyisme 刚发的奖金
另外,这玩意用 GPT4 会非常容易实现。。
@killerzhangsan "bot father 这里没有所谓的强制回复",是因为你执行了其它命令,服务端更新了新的状态。详细可以看我上面的代码
确实要靠自己维护当前输入的状态。比如用户绑定 uuid ,点击"绑定"按钮后,服务端保存当前操作为"waiting_for_uuid",接下来的输入就是绑定 uuid 。

对应的 golang 代码如下:
```go
var (
// 在状态管理中跟踪用户的操作状态。 以 chatID 为键,存储用户状态
usersState = make(map[int64]string)
)

// 用户状态的值
const (
stateWaitUUID = "waiting_for_uuid"
)


// ...

for update := range updates {
if update.Message == nil {
continue
}

logger.Info.Printf("%s [%s] %s", tag, update.Message.From.UserName, update.Message.Text)

switch update.Message.Text {
case "/bind":
// 处理用户绑定逻辑
// 更新用户操作状态为“等待 UUID”
usersState[update.Message.Chat.ID] = stateWaitUUID
reply := "😘 请输入您的 UUID"
sendMessage(reply, update.Message.Chat.ID)
case "/queryflow":
// 处理查询流量逻辑
handleQuery(update.Message)
default:
// 如果用户状态为等待 UUID ,则获取输入文本作为 UUID
if state, ok := usersState[update.Message.Chat.ID]; ok && state == stateWaitUUID {
// 在这里处理绑定逻辑,将 uuid 存储到数据库或进行其他操作
handleBinding(update.Message)
// 清除用户状态
delete(usersState, update.Message.Chat.ID)
break
}

// 处理其他文本消息
msg := "😪 请通过菜单选择操作"
sendMessage(msg, update.Message.Chat.ID)
}
}

```
搬瓦工 2C2G ,5 个人,也才 140/人,你怎么 230/人?
1  2  3  4  5  6  7  8  9  10 ... 16  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2319 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 88ms · UTC 00:19 · PVG 08:19 · LAX 16:19 · JFK 19:19
Developed with CodeLauncher
♥ Do have faith in what you're doing.