我用电报botfather制作一个电报机器人,我在我的公共电报频道中将我的机器人设为管理员,现在我想通过机器人在频道发送消息,这是我的工作代码:
send.php代码是:
mhoggan@1USDMHOGGAN /cygdrive/c/Program Files (x86)/SoftErg/WinGDB
$ ls -l
total 19620
drwxrwx---+ 1 SYSTEM SYSTEM 0 Jan 26 11:00 1033
drwxrwx---+ 1 SYSTEM SYSTEM 0 Jan 26 11:00 Generators
-rwxr-x---+ 1 SYSTEM SYSTEM 583168 Jan 10 13:51 softergCrashReporter.exe
-rwxr-x---+ 1 SYSTEM SYSTEM 59392 Jan 10 13:52 softergProcessBreaker64.exe
-rwxr-x---+ 1 SYSTEM SYSTEM 546816 Jan 10 13:51 softergShell.exe
drwxrwx---+ 1 SYSTEM SYSTEM 0 Jan 26 11:00 Templates
drwxrwx---+ 1 SYSTEM SYSTEM 0 Jan 26 11:00 Visualizers
-rwxr-x---+ 1 SYSTEM SYSTEM 3116544 Jan 10 13:29 wingdb.chm
-rwxr-x---+ 1 SYSTEM SYSTEM 1363456 Jan 10 13:46 wingdbAdaLanguagePack.dll
-rwxr-x---+ 1 SYSTEM SYSTEM 30208 Jan 10 13:53 wingdbAutomationAPI.dll
-rwxr-x---+ 1 SYSTEM SYSTEM 11030016 Jan 10 13:50 wingdbEngine.dll
-rwxr-x---+ 1 SYSTEM SYSTEM 1495040 Jan 10 13:54 wingdbMakefilePack.dll
-rwxr-x---+ 1 SYSTEM SYSTEM 1845760 Jan 10 13:51 wingdbRemoteTerminalPack.dll
和telegram-bot-api.php代码是:
<?php
require('telegram-bot-api.php');
$token = '10**************************************jM';
$bot = new telegram_bot($token);
$to = '@myChannel';
$rs = $bot->send_message($to , 'test' , null, null);
print_r($rs);
?>
但是当运行send.php时没有向频道发送消息但是当我用私人chat_id或group chat_id替换chat_id时,这段代码非常酷并且向群组或我的联系人发送消息
对不起我的英语,sory :)
答案 0 :(得分:3)
解决了,我使用httpRequster插件测试,发送一个帖子请求到这个链接:
https://api.telegram.org/bot1 ******************************* M / sendMessage
和发布的参数是: chat_id = @myChannel_username text = myMessage
我不知道为什么不使用我的旧代码但是要处理此请求:D
无论如何,谢谢。答案 1 :(得分:0)
Bot必须是该频道的管理员,才能发送消息。没有客户可以帮助您使机器人成为渠道管理员。你确定你的机器人是渠道的管理员吗?
来源:https://core.telegram.org/bots/api-changelog#october-8-2015
答案 2 :(得分:0)
curl对SSL有这个问题。 将此代码添加到Solve problem:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
答案 3 :(得分:0)
您还可以使用频道/组/帐户的数字chat_id来使漫游器发送消息。 获取chat_id的简单方法是将频道中的任何消息转发到@userinfobot机器人。