【问题标题】:Pass DialogFlow session ID as a url parameter on a button将 DialogFlow 会话 ID 作为按钮上的 url 参数传递
【发布时间】:2019-06-05 11:24:19
【问题描述】:

我正在尝试使用 Dialogflow 聊天机器人实现 facebook webview

我找不到将数据从网络视图传回对话的方法。

我现在正在探索的是是否可以将单击按钮的会话线程的会话 ID 作为按钮 url 上的查询参数传递。

这样,我可以使用检测意图对数据进行处理并将响应发布回线程

【问题讨论】:

    标签: webview dialogflow-es facebook-messenger


    【解决方案1】:

    ` MessengerExtensions.getSupportedFeatures(函数成功(结果) { 让特征=结果.supported_features; 控制台日志(功能);

                if (features.includes("context")) {
                    MessengerExtensions.getContext('APPID',
                        function success(thread_context) {
                            console.log(thread_context.psid);
                            // success
                            document.getElementById("psid").value = thread_context.psid;
                        },
                        function error(err) {
                            // error
                            console.log(err);
                        }
                    );
                }
            }, function error(err) {
                // error retrieving supported features
                console.log(err);
            });`
    

    <input type="hidden" name="psid" id="psid">

    如果您使用会话 ID 映射发件人,您将获得发件人 ID,并基于此找到会话 ID。

    【讨论】:

    • 嗨@Nikhil Savaliya 请指导我从 psid 获取会话 ID(代表当前用户的当前对话线程)。我有点卡在那里
    • 您需要在用户开始对话时将 sessionID 设置为用户的 senderID。 `让用户 = {}; users[senderid] = "sessionid"..
    【解决方案2】:

    您可以使用 Messenger Extensions SDK 中的 getContext() 函数。 getContext() 为您提供 thread_context 对象,其中包含 tid(打开 webview 的线程的 ID。)。

    请参阅此参考:MessengerExtensions.getContext()

    【讨论】:

    • thread_context.tid 给了我页面范围的用户 ID,这与检测意图所需的 sessionId 不同
    猜你喜欢
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多