PHP - Bot de Telegram en PHP sendPhoto

 
Vista:

Bot de Telegram en PHP sendPhoto

Publicado por Equiinox (2 intervenciones) el 03/06/2018 22:00:54
Estoy creando un bot de Telegram en PHP y no me aclaro para cuando escriba un comando me envíe una imagen que tengo en mi servidor web. He hecho que si que me responda con la función sendMessage a los comandos creados en los case pero no logro hacer que me envíe una imagen alojada en mi servidor web.

He intentado usar sendPhoto de la Api de telegram, pero no sé en lo que estoy fallando.

Código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
 
$botToken = <MI-TOKEN>;
 
$website = "https://api.telegram.org/bot" . $botToken;
$urlphoto = "sendPhoto?chat_id=" . $chatId;
$urldom = "https://mi.dominio.net/image.jpg";
$update = file_get_contents('php://input');
$update = json_decode($update, TRUE);
 
$chatId = $update["message"]["chat"]["id"];
$chatType = $update["message"]["chat"]["id"];
 
$message = $update["message"]["text"];
 
 
switch ($message) {
    case '/ayuda' :
    $response = "Tranquilo, no voy a hacer nada";
    sendMessage($chatId, $response);
    break;
    case '/imagen' :
    $response = "Enviando foto en 3...2...1...Ahí va";
    sendMessage ($chatId, $response);
    sendPhoto($chatId);
    break;
}
 
function sendMessage($chatId, $response){
        $url = $GLOBALS[website].'/sendMessage?
chat_id='.$chatId.'&parse_mode=HTML&text='.urlencode($
    file_get_contents($url);
}
function sendPhoto($chatId) {
       $url = $GLOBALS[website].'/sendPhoto?
chat_id='.$chatId.'&photo='.$urldom;
    file_get_contents($url);
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de santi
Val: 590
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Bot de Telegram en PHP sendPhoto

Publicado por santi (204 intervenciones) el 05/06/2018 23:23:19
Hola,

no se muy bien como funciona esta api de telegram pero he encontrado esto por internet:

1
2
3
$data['photo'] = "https://mi.dominio.net/image.jpg";
$data['caption'] = "Photo caption";
return Request::sendPhoto($data);

O que no sea que le falta un return y/o un @:

1
2
3
4
function sendPhoto($chatId) {
       $url = $GLOBALS[website].'/sendPhoto?chat_id='.$chatId.'&photo='.$urldom;
       return @file_get_contents($url);
}

O cerrar la función con }

Prueba a ver ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar