猿问

如何通过网络聊天解决令牌问题

用于生成直达线令牌的机器人框架 api 会导致网络聊天无法处理的令牌。


最近我注意到我网站上的网络聊天无法再建立直线连接。使用直达线秘密会产生有效的网络聊天。使用机器人框架 api 生成 webchat 无法处理的非常长的令牌(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>

我希望有一个较短的令牌或至少一个可用于使用网络聊天的令牌


慕雪6442864
浏览 104回答 2
2回答

临摹微笑

在 webchatclient 中使用直接线路机密会导致长度大于 800(长度不同)的长令牌和 403 错误转换为客户端中的无法连接消息。X。尽管创建连接的方法称为“createDirectLine”,但网络聊天客户端仍然需要网络聊天机密。
随时随地看视频慕课网APP
我要回答