0

問題があり、解決方法がわかりません。私は PHP と TDLib ライブラリを使用して Telegram API を管理しています。このために、JSON インターフェースを介して非同期呼び出しを行います。

https://core.telegram.org/tdlib/getting-started#tdlib-interface

Telegram API は更新を通じて機能します。プログラムは、受信した順序で適切に応答する必要がある電報の更新を受信します。このために、正しく機能する「while」サイクルを備えたスクリプトがあります。アルゴリズムの例を次に示します。

void *client = td_json_client_create();
// somehow share the client with other threads, which will be able to send requests via td_json_client_send
const double WAIT_TIMEOUT = 10.0; // seconds
int is_closed = 0;  // should be set to 1, when updateAuthorizationState with authorizationStateClosed is received
while (!is_closed) {
  const char *result = td_json_client_receive(client, WAIT_TIMEOUT);
  if (result) {
    // parse the result as JSON object and process it as an incoming update or an answer to a previously sent request
  }
}
td_json_client_destroy(client);

問題は、API の更新ステータスが常に「電話番号を待機中」であり、その時点でユーザーに電話番号を尋ねなければならないことです。その後、いくつかの更新状態の後、テレグラムはその電話番号にコードを送信するため、API のステータスが「コードを待機中」のときに、アプリケーションは受信したコードを入力するようユーザーに要求する必要があります。

このために、電話番号を要求するフォームとコードを要求するフォームの 2 つのフォームをプログラムしました。問題は、スクリプトが終了するまでフォームが表示されないことです。これは役に立ちません。

場合によってはブレークまたはリターンでスクリプトの流れを処理しようとしましたが、今回は適切なタイミングでフォームが表示されますが、スクリプトの予期された実行が終了し、フォームを送信した後にすべて実行するようになりますコードを最初からやり直して、変数を再起動します。

とにかく、私は本当に迷っているので、誰かが私にもっと良いアドバイスをくれるように、正しく説明できたことを願っています.

4

0 に答える 0