2017-10-03 5 views
0

私はこのアプリでC#デスクトップアプリを書いています。ユーザーのテレグラムIDを書きます。そのユーザーはチャンネルのメンバーであるかどうかはわかりません。私のボットはチャンネルの管理者です。テレグラムのユーザーが自分のチャンネルに参加しているかどうかはどのようにわかりますか?

私はtelegram.bot v9ナゲットを使用し、この問題について一日中検索しました。

v13でGetChatMembersCountAsync()を使用しようとしましたが、他の多くのメソッドが動作しませんでした。

static private Api bot = new Api("Token"); 
    long id; 
    string channel="@ChannelName"; 

    public Main() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     id = long.Parse(textBox7.Text); 
     if (IsMember(id,channel)) 
      MessageBox.Show("This user is member of channel"); 
     else 
      MessageBox.Show("This user is not a member of channel"); 

    } 

    private bool IsMember(long id,string channelName) 
    { 
     //?????????????? 
    } 

チャネルのメンバーのリストへのテレグボットアクセスの方法はありますか? IsMember()メソッドで何を書くべきですか?

ありがとうございました


V10にtelegram.botナゲットを更新しGetChatMemberAsyncの方法を用いることにより解決この問題。

private bool IsMember(long id,string channelName) 
    { 
     var t = bot.GetChatMemberAsync(channelName, id); 
      if (t.Result.Status.ToString().Length > 25) 
       return false; 
      return true; 
    } 

あなたは

答えて

3

あなたは、次の例を参照してください、それを行うには​​メソッドを使用することができ感謝しています。 Telegram Bot API documentationにについて

Awesome Telegram Bot

+0

私はOPが求めていたことは分かりませんが、このような質問はなぜマニュアルがあるのか​​不思議に思っています。 – Sebivor

2

現在チャットメンバー(チャネルまたはグループ)のリストを取得するボットのために利用できる方法はありません。 ここに小さなトリックがあります: new_chat_membersフィールドに値があり、chat_idフィールドにあなたのチャンネルのものであることが示されている場合は、テレグラムからの更新(メッセージ)をWebhookにチェックすることができます。あなたのチャンネルに参加したユーザー

関連する問題