我正在尝试让Telegram机器人向用户请求他/她的号码并对其进行操作。
Telegram::Bot::Client.run(token) do |bot|
bot.listen do |message|
case message
when Telegram::Bot::Types::CallbackQuery
when Telegram::Bot::Types::Message
case message.text
when '/help'
bot.api.send_message(
chat_id: message.chat.id,
text: 'Display help.'
)
end
if message.contact.phone_number == "1111111" #undefined method
bot.api.send_message(
chat_id: message.chat.id,
text: 'Number received.'
)
end
else
bot.api.send_message(
chat_id: message.chat.id,
text: 'Unknown command.'
)
end
end
end
我能够获取Contact对象,但是如何访问对象的phone_number字段?使用Ruby包装器来处理Telegram机器人。
答案 0 :(得分:0)
我通过在查询Contact
字段之前为phone_number
对象设置时态变量来修复此问题。不确定这是否是预期的互动,但它确实有效。
Telegram::Bot::Client.run(token) do |bot|
bot.listen do |message|
if sender = message.contact #Set a variable to the Contact object.
if sender.phone_number == "11111111"
bot.api.send_message(
chat_id: message.chat.id,
text: 'Phone number received.'
)
end
end
end