Créer propre bot sur télégramme avec php
J'ai vu il y a quelques jours ce tutoriel sur youtube.
C'était très intéressant, j'ai donc décidé de faire un propre bot.
J'ai utilisé le code du tutoriel comme un modèle:
<?php
$bottoken = "*****";
$website = "https://api.telegram.org/bot".$bottoken;
$update = file_get_contents('php://input');
$updatearray = json_decode($update, TRUE);
$length = count($updatearray["result"]);
$chatid = $updatearray["result"][$length-1]["message"]["chat"]["id"];
$text = $updatearray["result"][$length-1]["message"]["text"];
if($text == 'hy'){
file_get_contents($website."/sendmessage?chat_id=".$chatid."&text=hello");
}
elseif($text == 'ciao'){
file_get_contents($website."/sendmessage?chat_id=".$chatid."&text=bye");
}
Le script a fonctionné si j'exécute le script manuellement. Cependant quand j'utilise le webhook il ne fonctionne plus. Le tutoriel a dit que $update = file_get_contents('php://input');
est la bonne façon, pour être utilisé avant $update = file_get_contents($website."/getupdates");
. Ma question comment puis-je utiliser php://input
d'exécuter mon script automatiquement? Le script est sur un serveur à partir d' "one.com" et le certificat est également à partir de "one.com".
Juste pour clarifier, avez-vous mis en place une adresse web pour le webhook et placé votre code à l'intérieur index.php fichier dans ce dossier(votre serveur )?
Il peut être également possible que le certificat n'est pas de confiance entre ceux liste de Télégramme (Si je me rappelle bien, ils utilisent la liste de Debian Lenny)
Pensez-vous qu'il peut encore être un problème de certificat? Voir mon commentaire ci-dessous: j'ai utilisé deux différents (officiels/3ème partie) les certificats en vain. Essayé les deux sur PHP 5.6 et PHP 7. Toutes les idées pour une solution?
Il peut être également possible que le certificat n'est pas de confiance entre ceux liste de Télégramme (Si je me rappelle bien, ils utilisent la liste de Debian Lenny)
Pensez-vous qu'il peut encore être un problème de certificat? Voir mon commentaire ci-dessous: j'ai utilisé deux différents (officiels/3ème partie) les certificats en vain. Essayé les deux sur PHP 5.6 et PHP 7. Toutes les idées pour une solution?
OriginalL'auteur Mark Decker | 2015-08-23
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez autosignés ssl que vous avez à point pour le ssl chemin,
utiliser le ssh pour exécuter cette commande après l'avoir remplie avec des données réelles ,,
OriginalL'auteur user3583958
Après le changement de WebHook méthode, vous devez mettre comme suit, à partir de maintenant, nous allons traiter un message à temps. Pour moi fonctionne parfaitement.
au lieu
à
$update = file_get_contents('php://input');
OriginalL'auteur Michel Fernandes
Désolé pour déterrer cette vieille question avec tant d'enthousiasme, j'ai eu exactement la même question que vous.
Je crois qu'effectivement la réponse peut être plus facile encore moins satisfaisant, comme nous l'espérions: je ne pense pas qu'il soit possible d'obtenir une liste des messages précédents le bot tout en utilisant le webhook.
À savoir: ce qu'il fait, est exécuté le script PHP directement dès que le bot reçoit un message. Rien n'est stocké dans une base de données accessible, donc pas de updateArray est retourné.
Je suis tombé sur cet exemple, qui montre comment php://input fonctionne. Je suppose que la solution pour afficher une liste des messages, laissez le script php stocker le message dans une base de données chaque fois qu'un message est "transmis" par la webhook.
Si quelqu'un a trouvé quelque chose d'autre: je suis très intéressé.
OriginalL'auteur SJDS
Selon ma compréhension de votre extrait de code ci-dessus, vous devez utiliser php://input à l'intérieur des guillemets au lieu de guillemets simples. En php, nous avons bing différence dans ce cas d'utilisation.
OriginalL'auteur Sathish
c'est la réponse à tous vos problèmes.
suivez cette étape une fois que vous avez obtenu un jeton secret pour votre bot:
créer votre fichier php comme ceci :
si vous suivez étape par étape de son travail.
en profiter !!
OriginalL'auteur Marvin Priyatno