2015-07-09 83 views
0

我正在開發一個使用php和web鉤子的電報機器人。所有這一切都很好,但有時候我想要等待用戶的回覆。例如:如何在電報機器人中使用ForceReply

如果客戶端在沒有任何參數的情況下寫入/信息,我想顯示「使用情況」消息並要求&等待ID參數。

我知道有一個屬性「ForceReply」強制回覆,但是當我設置它時沒有任何反應,而且我不知道如何知道客戶是否回覆了我的問題。

我是否必須暫停我的php服務器? (我認爲這將是一個不好的做法)我需要爲某種類型的消息付出代價嗎?

感謝

回答

0

當您使用getUpdates或通過網絡掛接接收更新,該更新消息將包含類似reply_to_message字段的字段。您可以使用它將其與您發送的消息進行比較。

如果您通過webhooks運行您的腳本,我會假設它只在收到消息時才執行。如果是的話,我會建議你使用像內存緩存/ Redis的存儲您所期望的答覆爲,然後將消息時,回覆來了,你可以把它比作存儲的值:

<?php 
// This script triggers as a webhook 
$message = file_get_contents('php://input'); 
$message = json_decode($message, true); 
$cache = new RedisClient('localhost'); 

if ($message->reply_to_message == $cache->get('original.message.id')) 
{ 
    var_dump('message reply received'); 
} 

上面的例子是您可以在webhook中使用一些「僞」代碼來檢查對特定消息的回覆。

+0

非常感謝!那就是答案! – aleksdj