如何在共享联系人后保存用户的电话号码

时间:2016-07-07 17:09:43

标签: c# request bots contact telegram

这是我的电报僵尸键盘按钮:

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);
        }

2 个答案:

答案 0 :(得分: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);

                }
            }
        }
    }

答案 1 :(得分:-1)

您无法访问电话号码!电报机器人不返回用户的电话号码。使用chat-id向所有用户发送邮件。