我有一个电报机器人并将所有用户活动保存在日志文件中.检查日志文件时,查找具有否定聊天ID的用户-107606558.这通常吗?
该用户对象没有photo_id,那么有没有办法让用户的化身?
我想提及那些没有用户名的用户.
如果用户已设置用户名,则返回
Hi @username
Run Code Online (Sandbox Code Playgroud)
作为答案,但如果用户没有答案,我不能这样做.
我尝试使用唯一的用户ID,例如
@5642166
Run Code Online (Sandbox Code Playgroud)
但那没用.
我怎样才能做到这一点?
我正在尝试使用sendPhoto(Telegram的Bot API)发送带有此请求的动画GIF:
https://api.telegram.org/bot<token>/sendPhoto?chat_id=<chat_id>&photo=http://i.giphy.com/13IC4LVeP5NGNi.gif
Run Code Online (Sandbox Code Playgroud)
该方法有效,我ok:true回来了,但聊天窗口中的图像是移动GIF的静态快照.
如何才能显示动画GIF?我应该使用另一种方法吗?
我正在使用电报机器人 API来实现内联机器人。为了向用户发送查询结果,我answerInlineQuery以这种方式使用方法。这只是向用户显示存在于电报服务器上的照片的示例:
$results = array(
array(
"type" => "photo",
"id" => "1",
"photo_file_id" => the file id,
"title" => "test title",
"description" => "test description",
"caption" => "test caption",
"parse_mode" => "HTML"
),
);
$postFields["results"] = json_encode($results);
$postFields["cache_time"] = 0;
//send $postFields to telegram bot api server with curl
Run Code Online (Sandbox Code Playgroud)
这是有效的,在用户发送内联查询后,一张图像显示为结果列表。但问题是两个领域title,并description在结果列表不显示,即使这些都是存在的电报API文档在这里。
有什么问题,为什么这两个字段没有出现在结果列表中?
是否有任何方法可以使用 API 或 Web 界面或 BotFather 获取机器人的统计信息?或者我必须通过处理来自机器人 API 的更新来收集统计信息?
附:目前我通过处理来自机器人 API 的更新将统计信息存储在 Redis 中,但我希望找到更好的方法。
就我阅读 Telegram Bot API 的文档而言,Telegram 不会以任何方式限制对您的 webhook 回调的调用。
我正在创建一个 Telegram Bot,它仅适用于我将列入白名单的组和频道。
我可以过滤掉我在 webhook 回调中收到的消息。但是,恶意用户可以将我的机器人添加到一千个大组中,并可能导致所有其他用户拒绝服务。
即使 Telegram 实施了一些速率限制,此类用户操作仍可能导致所有其他用户拒绝服务。
如何指定 Telegram 机器人可以添加到的组和频道。
security telegram telegram-bot php-telegram-bot telegram-webhook
我想从响应中获取回调数据,但数组为空。
我试图在消息callback_data数组中显示。
这是我的代码:
$botToken = "token";
$botAPI = "https://api.telegram.org/bot" . $botToken;
$update = json_decode(file_get_contents('php://input'), TRUE);
$message = $update["message"]["text"]
$chatId = $update["message"]["chat"]["id"];
$callback_query = $update['callback_query'];
$callback_query_data = $callback_query['data'];
$url = $botAPI . '/sendMessage?chat_id=' . $chatId . '&text=';
if(isset($callback_query)){
file_get_contents($url . $callback_query_data);
}
if($message == "/start"){
$parameters = array('chat_id' => $chatId, "text" => "????????????. ???????? ????. \n???????. ??????? ??????? ?????.\nHi! Select your language.");
$parameters["method"] = "sendMessage";
$keyboard = ['inline_keyboard' => [[
['text' => "??????", 'callback_data' => 'tajik'],
['text' => "???????", …Run Code Online (Sandbox Code Playgroud) 我想在消息文本中匹配 Telegram 用户名并删除整行,我试过这种模式,但问题是它也匹配电子邮件:
.*(@(?=.{5,64}(?:\s|$))(?![_])(?!.*[_]{2})[a-zA-Z0-9_]+(?<![_.])).*
模式应该匹配所有这些行:
嗨@username 你好吗?
嗨@username.你好吗?
@用户名。
并且不应该像这样匹配电子邮件:
嗨,电子邮件到 something@domain.com
php-telegram-bot ×10
telegram-bot ×9
telegram ×6
php ×3
avatar ×1
python ×1
regex ×1
security ×1