我想获得电报bot中该人的ID发送的完整消息,包括所有附件,例如照片,音频,图像或标题和照片...,然后将其发送给另一个人的ID 。我不希望它被转发,我想被发送! 我通过这种方式收到所有更新:
$data=json_decode(file_get_contents("php://input"));
我的代码:
<?php
const apiKey='112';
$channels=[
'1'=>'-1001233909561',
'2'=>'-1001198102700',
];
const admin='668400001';
//-------------------------------------------------------- End Channels and ADMIN Info
$data=json_decode(file_get_contents("php://input"));
$json_data=json_encode($data);
file_put_contents('data.json', $json_data);
function bot($method, $datas = [])
{
$url = "https://api.telegram.org/bot" . apiKey . "/" . $method;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($datas));
$res = curl_exec($ch);
if (curl_error($ch))
{
var_dump(curl_error($ch));
}
else
{
return json_decode($res);
}
}
function forwardMessage($messageId)
{
bot('forwardMessage',[
'chat_id'=>backupChannelId,
'from_chat_id'=>firstChannelId,
'message_id'=>$messageId,
]);
}
function sendMessage($toChannel,$message)
{
}
?>
答案 0 :(得分:1)
如果我理解正确,则希望获取发送到机器人的所有消息的文本和所有附件。例如,消息的文本位于update
->
message
-> text
中。
$text = $data['message']['text'];
$audio = $data['message']['audio'];
将完全相同的消息发送到另一个聊天的最简单方法是转发它,否则,您必须在message对象中搜索所有可能的附件,如果存在,则将它们发送给另一个聊天。相应的方法(sendPhoto
,sendAudio
等)。
提示:
使用
$data = json_decode(file_get_contents("php://input"), true);
代替
$data = json_decode(file_get_contents("php://input"));
更多详细信息here