2016-07-07 9 views
0

を共有した後、ユーザーの電話番号を保存し、これは私の電報ボットkeyboardbuttonsであることができます。は、どのように私は彼が彼の接触

var keyboard = new ReplyKeyboardMarkup(new[] 
      { 
       new [] // first row 
       { 
        **new KeyboardButton("ارسال شماره تماس") 
        { 
         RequestContact = true 
        }** 
       }, 
       new [] // last row 
       { 
        new KeyboardButton("درباره ما"), 
        new KeyboardButton("ارتباط با ما"), 
       } 

      }); 

彼は彼の連絡先を共有した後、どのように私は、ユーザーの電話番号を保存することができますか? (私は彼の電話番号を取得し、自分のデータベース内の電話番号でそれを確認したい)

私はこれを試してみたが、それが動作しない(条件が真ではありません):

if (message.Type == MessageType.ContactMessage) 
     { 
      Console.WriteLine("aaaa"); 
      string ph = message.Contact.PhoneNumber; 
      await Bot.SendTextMessageAsync(message.Chat.Id, ph, replyMarkup: keyboard); 
     } 
+0

誰も私を助けることができなかった????? pllllleeeeaaase、私は助けが必要です。 – error

答えて

-1

あなたはすることができます電話番号にアクセスできません!テレグラムボットはユーザの電話番号を返さない。チャットIDを最も使用しているすべてのユーザーにメッセージを送信します。

+0

ありがとうございます。しかし私はそのユーザーがプライベートチャットでボットと共有した後に電話番号を保存したい。それは可哀想です! – error

+0

はできません。あなたはこれを読むことができます:https://core.telegram.org/bots/api#user –

+0

https://core.telegram.org/bots/api#contactどこの電話番号ですか? (私はrequest_contactボタンをボットに入れます。ユーザーがそれを押すとボットの彼のコンタクトシェアを押します) – error

0

MrRoundRobin:RequestContact = trueでユーザーがカスタムキーボードボタンを押すと、Update.Type == MessageUpdateとUpdate.Message.Contactの連絡先情報で更新が受信されます。

https://github.com/MrRoundRobin/telegram.bot/issues/198

私は、コードのこの部分で、この問題を解決:

static async Task GetContactPhoneNumber() 
    { 
     while (true) 
     { 
      var Updates = await Bot.GetUpdates(); 

      foreach (var update in Updates) 
      { 
       Console.WriteLine("aaaa"); 
       if (update.Type == UpdateType.MessageUpdate) 
       { 
        Console.WriteLine("bbb"); 
        var cc = update.Message.Contact.PhoneNumber; 
        //string ph = message.Contact.PhoneNumber; 
        await Bot.SendTextMessageAsync(update.Message.Chat.Id, cc); 

       } 
      } 
     } 
    }