web-dev-qa-db-ja.com

テレグラムボット:botFatherでコマンドを削除するには

BotFatherを使用してボットからすべてのコマンドを消去しようとしています。これに関するドキュメントが見つかりませんでした。コマンドの新しいリストをBotFatherに送信するオプションがありますが、カスタムキーボードを使用しているため、ボットにコマンドがないため、これは役に立ちません。

これを行う方法はありますか?

13
Guy

/ setcommandsでコマンドの新しいリストを追加するだけです。

古いリストは上書きされます。

16
user3008256

「削除コマンド」のような直接的な機能はありません。コマンドをもう一度オーバーライドする必要があります。こんな感じ。以下のようなコマンドセットがあるとしましょう

  • / love-愛は永遠です
  • / partner-パートナーを返す
  • / status-関係ステータスを返す

ボットからコマンド/ statusを削除する必要があるとします。まず@ BotFatherを使用してボットのリストを取得する必要があります/ mybotsを使用してボットを選択し、次にEdit bot next 編集コマンド。次に、新しいコマンドセットを追加するように要求します。次に、削除する必要のないコマンドリストを指定します。以下のように

love-愛は永遠です
partner-パートナーを返す

次にBotFatherは、新しいコマンドセットを新しいボットに追加します。新しいコマンドセットが一度に表示されなくても心配はいりません。彼らは10分くらい後に追加されます

4
Menuka Ishan

@ixchiの答えは妥協だと思います。 Telegramのコンベンション(/something)で以前のすべてのsetコマンドを消去することはおそらくできないので、少なくとも/startまたは/ helpコマンドを設定する必要があります。

TelegramボットAPIのコマンドの問題/制限の概念は、[〜#〜] global [〜#〜]リストと同様に考えられています。ボットの作成時に一度設定:

これは非常に単純なチャットボットアプリケーションでは問題ありませんが、さまざまな「ステータス」を持つ複雑な「ステートマシン」を処理する必要があるボットには最適ではありません。

代わりに、実行時に[〜#〜] contextual [〜#〜]コマンドのリストを設定します。

例を挙げて説明します。チャットボットの会話が次のステータスにあるとします:shopping_cart_order_processing

その場合、このステータスに関連するリストで入力インターフェイスを満たしたいと思います。

/add item_id

/remove item_id

/list カート内のすべてのアイテムをリストする

/checkout ご注文を送信してください!

などなど.

その後、ユーザーが注文すると、order_sentのステータスが変更され、コマンドリストも変更される可能性があります。

もちろん、制限はユーザーインターフェイスチャットアプリ機能の問題です( / ボタン/ポップアップリスト)、そしてボットはとにかくユーザーステートメントを次のように解釈できます:

/help

help

コンテキストコマンドのリストを提案します。

私の考慮がこの助けとなることを願っています。

とにかく、この「変更リクエスト」をTelegram Botの担当者に送りたいのですが、CRについてbot-guysに連絡する方法がわかりません。

とにかく、Telegram Bot APIは驚くべきものであり、現在は作業中です(参照:---(https://core.telegram.org/bots/api )!

1
Giorgio Robino

BotFatherは、提供するコマンドのリストを管理するだけです。

これで新しい/ setcommandsを実行できますが、ボットの機能を実際に変更することはできません。

0
ixchi

今日と同様に、コマンド/ emptyを送信して、[コマンドの編集]メニューのすべてのコマンドを削除できます。

0
Prince Paul