我刚刚使用 Telegram API 文档中的 .KeyboardButton 熟悉了 telegram 机器人的键盘按钮,但我有一个问题;到目前为止,我只能设计按钮,以便单击按钮后的输出与其标题/占位符相同,这对我想做的事情确实没有帮助。
我已经设置了命令并且所有命令都已设置,例如我希望标记为“规则”的按钮的输出为 /rules,以便启动命令操作,而不是机器人输出为“规则”。我正在使用 Python,尽管我对任何使用其他语言从事相同工作的人持开放态度。
python telegram python-telegram-bot telegram-bot php-telegram-bot
我正在研究电报机器人,我需要下载用户发送到机器人的照片,音频,视频.使用get file方法返回的唯一路径,我只获得一个缩略图.实际上,get file方法的唯一结果是包含一个非常小的文件大小值.我无法弄清楚问题出在哪里.照片通常作为照片(而不是文件)通过消息发送.
我正在使用 telegram API 并创建 php telegram bot。要使用方法发送视频文件sendVideo,请使用file_idlike BAADBAADbwADhd7gCEpUooz4V5Q1Ag。但几天后这file_id不起作用,我必须再次上传该视频文件。问题是什么?
我正在设计一个电报机器人。我想显示一些链接,例如
1- wkpviana
2-虚拟主机
当用户单击它时,打开
http://wkpviana.net
http://vianahosting.ir
Run Code Online (Sandbox Code Playgroud)
在浏览器中。我如何在php中创建它?我的代码的一部分是:
<?php
...
$sLink = "";
foreach($Links as $Row){
$sLink .= "<a href='".$Row->link_url."'>".$Row->link_name."</a>";
}
$Text = $sLink;
...
$URL = "https://api.telegram.org/bot".$Token."/sendMessage?chat_id=".$ChatID."&text=".$Text."&reply_markup=".json_encode($KB);
file_get_contents($URL);
?>
Run Code Online (Sandbox Code Playgroud) 以下代码有效,它添加了自定义键盘键“ Button1”和“ Button2”
$keyboard = [
'keyboard' => [['Button1'],['Button2']],
'resize_keyboard' => true,
'one_time_keyboard' => true,
'selective' => true
];
$keyboard = json_encode($keyboard, true);
$sendto = API_URL."sendmessage?chat_id=".$chatID."&text=".$reply."&parse_mode=HTML&reply_markup=$keyboard";
Run Code Online (Sandbox Code Playgroud)
虽然出于我的目的,我需要使用嵌入式键盘,但是我无法使其正常工作
$keyboard = [
'inline_keyboard' => [['Button1' => 'test', 'callback_data' => 'test'],
];
Run Code Online (Sandbox Code Playgroud)
要么
$keyboard = [
'inline_keyboard' => [['Button1' => 'test'],['callback_data' => 'test']],
];
Run Code Online (Sandbox Code Playgroud)
不起作用。如果有人有一个可行的示例,或者可以指出我的示例中有什么错误,我将不胜感激。
链接到文档:https : //core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating
我知道这是Telegram 发送重复的 POST JSON 请求到 webhook和Telegram 发送重复的 POST JSON 请求到 webhook 的副本。然而,这个问题没有任何适当的答案,所以:
我有一个 PHP 应用程序处理来自 Telegram 的 webhook 请求。然而,Telegram 无法读取 webhook 已成功运行(尽管 hurl.it 清楚地显示它会针对此类请求发送回 200)。
因此,我让我的机器人多次回复消息,因为 Telegram 无法得知消息已被处理。
问题也在这里描述(我正在使用的库):
https://github.com/irazasyed/telegram-bot-sdk/issues/23
然而,也没有明确的答案......
我该如何修复它?
1) 我的机器人正在使用 webhook 2) 它肯定会返回 200 OK 响应 3) 用户收到机器人 更新的回复 4) 这不是超时。
我的getWebhookInfo回复:
[decodedBody:protected] => Array
(
[ok] => 1
[result] => Array
(
[url] => https://bots.chatforge.me/t/test
[has_custom_certificate] =>
[pending_update_count] => 3
[last_error_date] => 1514900657
[last_error_message] => Unsupported Media …Run Code Online (Sandbox Code Playgroud) 我想用 php 控制一个 Telegram 账户!是否可以像那样连接到电报?因为我在我的一个小组中看到了这样的机器人!使用的是手机号码而不是botfather key!
我想为电报机器人中的单词创建一个网址。
使用了这段代码,但它不起作用:
https://api.telegram.org/bot$botToken/sendMessage?chat_id=chat_id&text=<a href="url.com">the word</a>
Run Code Online (Sandbox Code Playgroud)
如何为单词建立链接。当用户点击word时,会跳转到url地址页面
我想使用 Telegram Bots 将文件从 URL 发送给用户,我的文件扩展名在,.attheme但我无法从 Url 上传此文件。
目前我可以上传.zip, .pdf,但我想.attheme从 PHP 代码上传文件。
该机器人可以将任何类型的文件上传到 Telegram:@uploadbot
我怎样才能做到这一点 ?
我尝试按照API设置我的机器人命令,但它不起作用。这是函数:
function setMyCommands($cmds) {
$cmds_encoded = json_encode($cmds);
apiRequest("setMyCommands?commands=".$cmds_encoded);
}
Run Code Online (Sandbox Code Playgroud)
这是命令数组:
$cmds_available = [
["command" => "a", "description" => "aaa"],
["command" => "b", "description" => "bbb"],
["command" => "c", "description" => "ccc"],
];
Run Code Online (Sandbox Code Playgroud)
我称这个函数为:setMyCommands($cmds_available);
该函数已成功调用。但命令没有更新。我曾经apiRequest("getMyCommands")得到我的命令。他们是旧人。
我到处调整。之前有过一次效果。但后来它再也不起作用了。我不知道我是否可能在某个地方搞砸了。
任何帮助表示赞赏!
我想从接收更新中读取用户名,但我遇到了一个特殊问题.
对于某些用户,$message['from']['username']包含Telegram用户名,但是对于某些用户,此参数未定义.
如何username使用Telegram Bot API 可靠地接收用户名(获取字段)?