电报机器人如何通过PHP处理地理定位

时间:2017-11-29 06:47:25

标签: php geolocation telegram telegram-bot

帮助!

我正在编写电报机器人,我通过request_location按钮请求地理位置,以响应地图上的点。我无法弄清楚如何将这一点传递给$ lon; $ lat抱歉我的英语不好。谢谢

$output = json_decode(file_get_contents('php://input'),true);
$id = $output['message']['chat']['id'];
$token='***';
$ApiKey='***';      
$message= $output['message']['text'];
$Location=$output['longitude']['latitude'];
switch ($message) {
case '/start':
    $message = 'Привет! Нажми отправить местоположение чтобы начать.';
    sendMessage($token, $id, $message . KeyboardMenu());
    break;
case $Location:
    $lat = $Location['latitude'];
    $lon = $Location['longitude'];
    if (isset($Location['longitude']['latitude']))
        {
            $message = "Отлично! ваше местонахождение определено." .$lat. $lon;
        }
   else
       {
            $message ="error";
       }
   sendMessage($token, $id, $message,$lat,$lon . KeyboardMenu().get_address($lat, $lon, $ApiKey));
break;
 default:
    $message='Неправильный запрос.';
    sendMessage($token,$id,$message.KeyboardMenu());
function sendMessage($token, $id,$message)
{
file_get_contents("https://api.telegram.org/bot" . $token . "/sendMessage?
chat_id=" . $id . "&text=".$message);
}

function KeyboardMenu(){
    $buttons = [[['text'=>"Отправить местоположение", 
'request_location'=>true]],[['text'=>"Показать автосервисы"]],[['text'=>"Справка"]]];
     $keyboard =json_encode($keyboard=['keyboard' => $buttons,
                                        'resize_keyboard' => true,
                                        'one_time_keyboard'=> false,
                                        'selective' => true]);
   $reply_markup ='&reply_markup='.$keyboard.'';
   return $reply_markup;
}

谢谢!

0 个答案:

没有答案