Google Cloudshellプラットフォームを使用してWebhookをホストするためのSSL認定URLを作成しています。そこで私はもともとgetupdatesを使ってchat_idを見つけてボットメッセージを送信し始めました。次のコードは、ユーザーのチャットIDを取得してからテキスト「テキスト」を取得するためのもので、正常に動作します。テレグラムアップデートを受信していません
<?php
$botToken = "insert bot token" ;
$website = "https://api.telegram.org/bot".$botToken ;
$update = file_get_contents($website."\getupdates");
$updateArray = json_decode($update, TRUE) ;
$chatId = $updateArray["result"][0]["message"]["chat"]["id"] ;
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=test") ;
?>
次に、setwebhookを使用してWebフックを設定し、上記のコードを変更しました。
<?php
$botToken = "insert bot token" ;
$website = "https://api.telegram.org/bot".$botToken ;
$update = file_get_contents("php://input");
$updateArray = json_decode($update, TRUE) ;
$chatId = $updateArray["result"][0]["message"]["chat"]["id"] ;
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=test") ;
?>
つまり、\ getupdatesを "php:// input"に変更しました。それはではなく、の仕事をしました。
私は、Googleのアプリケーションエンジンが自動的にSSL証明書に署名しない可能性があり、その理由がウェブフックが機能しない理由です。
ご協力いただければ幸いです。
EDIT:以下の回答/コメントを受けて、私はgetWebhookinfoのアプローチを試してみましたが、
を得た "URL:" https://my_url.com "" has_custom_certificate」:偽、 "pending_update_count":0、 "max_connectionsを" :40
あなたは、次のメソッドを介して問題点を見つけることができます
詳細は、 '/ webhookinfo'メソッドを使用して取得できます。この結果を投稿してください。 – creyD
@creyDこれは "url:" https.url "、" has_custom_certificate ":false、" pending_update_count ":0、" max_connections ":40 – rah4927
のようになります。このURLは正しくはありません。/setwebhook'メソッド。例: '/ setwebhook?url = https:// www.google.de'は[here](https://core.telegram.org/bots/api#setwebhook)に記載されています。 – creyD