当前位置: 首页 > 知识库问答 >
问题:

Gupshup-多消息延迟功能不起作用

戚鸿福
2023-03-14

我尝试在我的机器人上实现一个延迟功能,以一个接一个地显示多条消息。延迟特性显示在我的Flow Bot Builder图表中,但当我在conversation tester和Messenger上的代理Bot中测试时,延迟实际上并没有发生--所有消息都同时显示。

我已经将IDE中的延迟代码添加到default.scr文件中:

[main]
   label_dych:Hi! I'm delay-bot and I'm here to help you with any questions you have.:continue
     ((delay 2000))
       label_gthk:I'll never need to take any personal or financial information from you, so as we chat please don't tell me any!:continue
         ((delay 1000))
           label_ylbn:{"name":"quickreply","type":"quick_reply","alias":"What can I help you with?","msgid":"117af569-5188-ff7e-9b48-8c553c2f36cb","content":{"type":"text","text":"What can I help you with?"},"options":[{"type":"text","title":"My Page","iconurl":"","id":"ac49ad32-c9bc-469f-2152-c7c842bad8ea","isDuplicate":false,"name":"user"},{"type":"text","title":"Team Spaces","iconurl":"","id":"8a2017ac-2fc3-0901-be8d-1fad5a2dba12","isDuplicate":false,"name":"user"},{"type":"text","title":"Offline Support","iconurl":"","id":"70861407-e706-17a3-207b-c43958fde83e","isDuplicate":false,"name":"user"},{"type":"text","title":"Something else","iconurl":"","id":"d3f7b6b4-e70a-098d-dde9-1da3e8cc08dc","isDuplicate":false,"name":"user"}]}

我还按照下面的指示将options.apikey代码行添加到index.js文件中:https://www.gupshup.io/developer/docs/bot-platform/guide/senging-multiple-messages-botscript

function ScriptHandler(context, event){
    var options = Object.assign({}, scr_config);
    options.current_dir = __dirname;
    //options.default_message = "Sorry Some Error Occurred.";
    // You can add any start point by just mentioning the 
<script_file_name>.<section_name>
    // options.start_section = "default.main";
    options.success = function(opm){
        context.sendResponse(JSON.stringify(opm));
    };
    options.error = function(err) {
        console.log(err.stack);
        context.sendResponse(options.default_message);
    };
    botScriptExecutor.execute(options, event, context);
    options.apikey = "1mbccef47ab24dacad3f99557cb35643";
}

有什么明显的原因可以解释为什么延迟效应不会在消息之间起作用?当我点击右上角的徽标时,我使用了为我的gupshup帐户显示的apikey。

共有1个答案

陶星波
2023-03-14

在调用脚本工具execute函数之后,您已经放置了API密钥。将API密钥放在botscriptexecutor.execute之前的任何位置,延迟应该会起作用。

而且,延迟的时间以毫秒为单位。

示例

function ScriptHandler(context, event){
var options = Object.assign({}, scr_config);
options.current_dir = __dirname;
//options.default_message = "Sorry Some Error Occurred.";
options.apikey = "1mbccef47ab24dacad3f99557cb35643";
// You can add any start point by just mentioning the 
<script_file_name>.<section_name>
// options.start_section = "default.main";
options.success = function(opm){
    context.sendResponse(JSON.stringify(opm));
};
options.error = function(err) {
    console.log(err.stack);
    context.sendResponse(options.default_message);
};
botScriptExecutor.execute(options, event, context);
 类似资料:
  • 主要内容:1 load加载延迟消息数据,1.1 parseDelayLevel解析延迟等级,2 start启动调度消息服务,3 DeliverDelayedMessageTimerTask投递延迟消息任务,3.1 executeOnTimeup执行延迟消息投递,3.2 scheduleNextTimerTask下一个调度任务,3.3 correctDeliverTimestamp校验投递时间,3.4 messageTimeup恢复正常消息,,基于RocketMQ release-4.9.3,深入

  • 问题内容: 我没有代码示例或任何内容,因为我不知道该怎么做,但是有人可以告诉我如何在一定时间内迅速延迟功能吗? 问题答案: 您可以使用GCD(在示例中,延迟10秒): 迅捷2 Swift 3和Swift 4

  • 我正在使用Spring Kafka1.0.3来消费kafka消息。Kafka的2个主题,每个主题有1个分区。在java代码中,有2@KafKalistener来消费每个主题消息。ConcurrentKafkaListenerContainerFactory的并发设置为1。但消息有时会延迟20秒以上。 有人知道为什么吗? 添加调试日志,并且延迟不是每次都可以,有时也可以:

  • 如何使用Apache Kafka生成/使用延迟消息?标准的Kafka(和Java的kafka-client)功能似乎没有这个特性。我知道我自己可以用标准的等待/通知机制来实现它,但是它看起来不是很可靠,所以任何建议和好的实践都很感谢。 找到相关问题,但没有帮助。正如我所看到的:Kafka基于从文件系统的顺序读取,并且只能用于直接读取主题,保持消息的顺序。我说的对吗?

  • 我试图发送个别的SQS消息延迟。使用https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-send-message-with-timer.html测试消息延迟,我没有看到任何延迟。 如果我在队列上设置了一个延迟,那么该延迟将被接受,但是对于单个消息则不会。我正在执行以下操作(全部来自AWS控制台

  • 我们在RHEL 7.0 VM上部署了一个Java/spring/Tomcat应用程序,它使用AlejandRorivera/Embedded-RabbitMQ,一旦部署了war,它就启动Rabbitmq服务器,并连接到它。我们有多个队列用来处理和过滤事件。 流程如下所示: 我们接收到的事件->发布事件队列->侦听器类筛选事件->发布到另一个队列进行处理->我们发布到另一个队列进行日志记录。 问题是