Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Botframework Adaptive Card Action.OpenURL跟踪_Botframework_Adaptive Cards_Web Chat_Microsoft Bot Framework_Webchatjs - Fatal编程技术网

Botframework Adaptive Card Action.OpenURL跟踪

Botframework Adaptive Card Action.OpenURL跟踪,botframework,adaptive-cards,web-chat,microsoft-bot-framework,webchatjs,Botframework,Adaptive Cards,Web Chat,Microsoft Bot Framework,Webchatjs,自适应卡1.2/1.3 问题 这与自适应卡中的Action.OpenURL按钮有关。 当您向用户显示带有一些链接的自适应卡(Action.OpenURL)时,它只需在新选项卡中打开该URL即可。 Bot不知道链接是否被点击,这使得事件的跟踪很难处理,特别是当我们想记录某个特定话语点击了哪个链接时 有谁能帮助我们,处理这个问题的更好方法是什么。我相信自适应卡中有一些东西发生了变化,不再允许您执行类似的操作。但我发现了一些东西,但不知道它是否真的有效 <script type="te

自适应卡1.2/1.3

问题 这与自适应卡中的Action.OpenURL按钮有关。 当您向用户显示带有一些链接的自适应卡(Action.OpenURL)时,它只需在新选项卡中打开该URL即可。 Bot不知道链接是否被点击,这使得事件的跟踪很难处理,特别是当我们想记录某个特定话语点击了哪个链接时


有谁能帮助我们,处理这个问题的更好方法是什么。

我相信自适应卡中有一些东西发生了变化,不再允许您执行类似的操作。但我发现了一些东西,但不知道它是否真的有效

<script type="text/babel" data-presets="es2015,react,stage-3">
  (async function () {
    const { ReactWebChat } = window.WebChat;
    const cardActionMiddleware = () => next => async ( { cardAction } ) => {
      if (cardAction?.type === 'openUrl') {
        const urlButtonClickEvent = new Event('urlButtonClick')
        urlButtonClickEvent.data = cardAction.value;
        window.dispatchEvent(urlButtonClickEvent);
      }
      return next( { cardAction } );
    }
    const res = await fetch('http://localhost:3500/directline/token', { method: 'POST' });
    const { token } = await res.json();
    window.ReactDOM.render(
      <ReactWebChat
        directLine={ window.WebChat.createDirectLine({ token }) }
        cardActionMiddleware={cardActionMiddleware}
      />,
      document.getElementById('webchat')
    );
    document.querySelector('#webchat > *').focus();
    window.addEventListener( 'urlButtonClick', ( { data } ) => {
      store.dispatch({
        type: 'WEB_CHAT/SEND_EVENT',
        payload: {
          name: 'URL_BUTTON_CLICK',
          value: data
        }
      })
    } );
  })().catch(err => console.error(err));
</script>

(异步函数(){
const{ReactWebChat}=window.WebChat;
constcardactionmiddleware=()=>next=>async({cardAction})=>{
if(cardAction?.type==='openUrl'){
const urlButtonClickEvent=新事件('urlButtonClick')
urlButtonClickEvent.data=cardAction.value;
window.dispatchEvent(urlButtonClickEvent);
}
返回下一个({cardAction});
}
const res=等待取数('http://localhost:3500/directline/token“,{方法:'POST'});
const{token}=await res.json();
window.ReactDOM.render(
,
document.getElementById('webchat')
);
document.querySelector(“#webchat>*”).focus();
addEventListener('urlButtonClick',({data})=>{
仓库调度({
键入:“网络聊天/发送事件”,
有效载荷:{
名称:“URL\u按钮\u单击”,
值:数据
}
})
} );
})().catch(err=>console.error(err));