编程打卡:tg的bot开发尝试
Posted 松坂制糖厂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程打卡:tg的bot开发尝试相关的知识,希望对你有一定的参考价值。
首先,去专门的Bot那里申请一个Token
官网列举了很多 Bot API Library 我只会Python 所以就用 python-telegram-bot
https://github.com/python-telegram-bot/python-telegram-bot/
然后就别看我写的了,去看官网的wiki吧,相对我写的绝对更能解决问题。
pip 安装 即可
import logging
from telegram import Update
from telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler
logging.basicConfig(
format=\'%(asctime)s - %(name)s - %(levelname)s - %(message)s\',
level=logging.INFO
)
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=update.effective_chat.id, text="I\'m a bot, please talk to me!")
if __name__ == \'__main__\':
application = ApplicationBuilder().token(\'TOKEN\').build()
start_handler = CommandHandler(\'start\', start)
application.add_handler(start_handler)
application.run_polling()
这个简单的例子中,logging 来记录log,出错了方便找到问题。
async 定义了一个异步函数,什么是异步?我瞎解释的就是它会独立运行,花时间也不用接下来的任务等它这样?
这个函数有两个参数,update,就当作是触发这个函数的东西,里面的内容是什么,谁发送的,之类的东西。context就是库本身的一些状态。
你可以看到,它会让bot往触发这个函数的聊天里面发送一条消息,内容就是"I\'m a bot, please talk to me!"
在 应该看起来像是主函数 里面,首先登录,TOKEN就填写之前获取的TOKEN
然后创建一个 handler,监听 start 这个命令
接下来添加这个handler
application.run_polling()
,就是让这个bot持续运行,除非你关掉它。
好了,现在你可以做个自己的bot啦!
Messenger Bot 无法响应
【中文标题】Messenger Bot 无法响应【英文标题】:Messenger Bot Fails to Respond 【发布时间】:2016-11-16 05:05:00 【问题描述】:我的机器人已经获得批准并且可以公开使用(见图),但它不会回复除开发者之外的任何人。
我将它托管在 Heroku 上。我尝试使用大量控制台日志对其进行调试,并且我意识到当开发人员以外的任何人发送它时,它不会记录 "Enter App.Post"(见下文)一个消息。
有其他人经历过这种行为吗?
/// Facebook verification
app.get('/webhook/', function (req, res)
if (req.query['hub.verify_token'] === '***************')
res.send(req.query['hub.challenge'])
res.send('Error, wrong token')
)
/// Star up the server
app.listen(app.get('port'), function()
console.log('running on port', app.get('port'))
)
app.post('/webhook/', function (req, res)
console.log("Enter App.Post");
messaging_events = req.body.entry[0].messaging
for (i = 0; i < messaging_events.length; i++)
....
更新:我发现了以下日志:
Error: message: '(#10) Cannot message users who are not admins, developers or testers of the app until pages_messaging permission is reviewed and the app is live.',
type: 'OAuthException',
code: 10,
fbtrace_id: 'CVUDg****'
【问题讨论】:
【参考方案1】:您确定您的 Facebook Messenger 机器人已获得 Facebook 的批准吗?
除了管理员、开发人员和测试人员之外的任何人都可以使用它之前,他们必须正式批准信使机器人。
提供的代码中没有任何内容可以阻止它接收来自其他用户的消息,所以我猜你的机器人实际上还没有得到 Facebook 的批准。
如果您尝试使用除您自己之外的用户对其进行测试,请将他们添加为测试人员,他们将可以访问机器人,预先批准。
【讨论】:
它是 approved 并且是 public 。它也适用于我指定为测试人员的人 也许他们的批准有问题。有没有办法重新提交?如果没有,您可能需要打开错误报告。以上是关于编程打卡:tg的bot开发尝试的主要内容,如果未能解决你的问题,请参考以下文章