【发布时间】:2019-05-14 16:37:31
【问题描述】:
用于生成直达令牌的 bot 框架 api 导致 webchat 无法处理令牌。
最近我注意到我网站上的网络聊天不再能够建立直接连接。使用直连密码会产生有效的网络聊天。使用 bot 框架 api 生成一个非常长的令牌(816 个字符),网络聊天无法处理(导致无法连接的消息。这曾经工作得很好,但现在它坏了(据我所知,没有任何改变)
我使用一些 PHP 调用 api 并获取令牌:
<?php
$botSecret = 'DIRECLINE SECRET';
$response = wp_remote_get( 'https://webchat.botframework.com/api/tokens', array( 'headers' => 'Authorization: BotConnector ' . $botSecret ) );
if( is_array($response) ) {
$header = $response['headers'];
$token = $response['body'];
}
?>
<script type="text/javascript">
var webChatToken = <?php echo $token; ?>;
</script>
和 Html\Javascript 显示网络聊天客户端
<html>
<body>
<div id="webchat" role="main"></div>
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
<script>
const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'webchat/join',
value: { language: window.navigator.language }
}
});
}
return next(action);
});
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ token: webChatToken }),
store,
styleOptions: {
},
userID: 'N/A',
username: 'Web Chat User',
locale: 'nl-NL'
}, document.getElementById('webchat'));
</script>
</body>
</html>
我希望有一个更短的令牌或至少一个可用于使用网络聊天的令牌
【问题讨论】:
-
您还在遇到这个问题吗?您能否提供有关该错误的更多信息?网络聊天连接失败时看到的错误代码是什么?
-
恐怕我是。错误是(从荷兰语翻译)“无法建立连接”我现在正在使用一种解决方法,即使用直接线路密码进行连接
-
我没有看到您的代码有任何明显的问题,并且我能够从您在上面使用的端点请求一个令牌以连接到我的机器人。我建议您查看Generating a DirectLine Token 并尝试一下。
-
威尔科。 Tnx 提供帮助
-
我阅读了文档并尝试了替代实现。没有让它工作。您的令牌长度是多少(我得到 816 个字符的令牌),您是否通过 webchat client? 成功连接到您的机器人谢谢
标签: php botframework token