通过Bot Framework V4上的Webchat使用“凭据”进行语音服务身份验证

Amintas Lopes Neto

使用授权令牌+区域对调用语音服务时,我的机器人工作正常。
代码如下。
webSpeechPonyfillFactory = await window.WebChat.createCognitiveServicesSpeechServicesPonyfillFactory({ authorizationToken, region });
但是,浏览器上会显示以下警告消息:
botframework-webchat: "authorizationToken", "region", and "subscriptionKey" are deprecated and will be removed on or after 2020-12-17. Please use "credentials" instead.
如何将身份验证代码迁移到新方法?
代码示例受到赞赏。谢谢

史蒂文·坎伯格

这是我使用的代码。我在本地运行服务器,以调用返回令牌(和区域)的语音API。

在网络聊天代码中,您只需要将返回的令牌和区域传递到中createCognitiveServicesSpeechServicesPonyfillFactory()您的代码不需要特别匹配我的。只需执行以下操作即可:

const webSpeechPonyfillFactory = await window.WebChat.createCognitiveServicesSpeechServicesPonyfillFactory( {
  credentials: {
    authorizationToken: authorizationToken,
    region: region
  }
} );

或者,根据您构造凭据对象的方式,

{ credentials: credentials }


样例代码:

const path = require('path');
const restify = require('restify');
const request = require('request');

const bodyParser = require('body-parser');
const corsMiddleware = require('restify-cors-middleware');

const cors = corsMiddleware({
    origins: ['*']
});

const ENV_FILE = path.join(__dirname, '.env');
require('dotenv').config({ path: ENV_FILE });

// Create HTTP server.
const server = restify.createServer();
server.pre(cors.preflight);
server.use(cors.actual);
server.use(bodyParser.json({
    extended: false
}));

server.listen(process.env.port || process.env.PORT || 3500, function() {
    console.log(`\n${ server.dl_name } listening to ${ server.url }.`);
});

server.post('/speechservices/token', async (req, res) => {
    const options = {
        method: 'POST',
        uri: `https://${ process.env.SPEECH_SERVICES_REGION }.api.cognitive.microsoft.com/sts/v1.0/issueToken`,
        headers: {
            'Ocp-Apim-Subscription-Key': process.env.SPEECH_SERVICES_SUBSCRIPTION_KEY
        }
    };
    request.post(options, (error, response, body) => {
        if (!error && response.statusCode < 300) {
            body = { region: process.env.SPEECH_SERVICES_REGION, authorizationToken: body };
            res.send({
                authorizationToken: body.authorizationToken,
                region: body.region
            });
            console.log(`Someone requested a speech token...(${ response.statusCode })`);
        } else if (response.statusCode >= 400 && response.statusCode < 500) {
            res.send(response.statusCode);
        } else if (response.statusCode >= 500) {
            res.status(response.statusCode);
            res.send('Call to retrieve token failed');
        }
    });
});
const getSpeechToken = async (credentials = {}) => {
  const response = await fetch( `http://localhost:3500/speechservices/token`, {
    method: 'POST',
  } );
  if ( response.status === 200 ) {
    const { authorizationToken, region } = await response.json();
    credentials['authorizationToken'] = authorizationToken;
    credentials['region'] = region;
    return credentials;
  } else {
    console.log('error')
  }
}

const webSpeechPonyfillFactory = await window.WebChat.createCognitiveServicesSpeechServicesPonyfillFactory( {
  credentials: await getSpeechToken()
} );

render(
  <div>
    <ReactWebChat
      directLine={directLine}
      selectVoice={( voices, activity ) =>
        activity.locale === 'en-US' ?
          voices.find( ( { name } ) => /KatjaNeural/iu.test( name ) )
          :
          voices.find( ( { name } ) => /KatjaNeural/iu.test( name ) )
          || voices.find( ( { name } ) => /Apollo/iu.test( name ) )}
      webSpeechPonyfillFactory={webSpeechPonyfillFactory}
    />
    </div>,
  document.getElementById( 'webchat' )
  );

希望有帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bot Framework v4 Bot 模拟器身份验证错误请求

来自分类Dev

如何通过Google Analytics(分析)Reporting API v4进行身份验证

来自分类Dev

使用 Bot Framework C# v4 的动态提示

来自分类Dev

在 Microsoft Bot Framework 的 sdk v4 中使用 FormDialog

来自分类Dev

检查用户是否使用 PHP 在服务器上通过 Firebase 身份验证进行身份验证?

来自分类Dev

通过在 DRF 中扩展用户模型进行身份验证(Django Rest Framework)

来自分类Dev

使用MVC4在服务堆栈中不通过MemoryCacheClient进行身份验证的会话

来自分类Dev

Bot Framework V4依赖项注入无效

来自分类Dev

AdaptiveCard Bot Framework V4 中的日语字符

来自分类Dev

Bot Framework V4上的对话框延续问题

来自分类Dev

如何通过 Azure 数据存储和 MS Bot Framework 使用(获取和设置)用户数据?

来自分类Dev

Microsoft Bot Framework (WebChat) - 500 内部服务器错误

来自分类Dev

Microsoft Bot Framework (SDK4 Nodejs):如何让机器人使用 api 执行诸如客户身份验证之类的操作?

来自分类Dev

在Bot Framework v4中,如何使用评论框和提交按钮实施评分卡

来自分类Dev

无法使用 Bot Framework SDK v4 在 MS Teams 中呈现自适应卡片

来自分类Dev

如何使用 SQL 保存 ConversationState 和 UserState Bot Framework v4

来自分类Dev

如何使用 Postman 对 Django REST Framework 进行身份验证

来自分类Dev

具有基本身份验证Microsoft Bot Framework的HTTP

来自分类Dev

具有基本身份验证Microsoft Bot Framework的HTTP

来自分类Dev

Xcode5 Bot无法通过git repo进行身份验证

来自分类常见问题

Django Rest Framework-未提供身份验证凭据

来自分类Dev

Django Rest Framework JWT 未提供身份验证凭据

来自分类Dev

在 Microsoft bot Framework 中跨渠道验证用户身份

来自分类Dev

Bot Framework Emulator 处理新成员的方式是否与 Bot Framework Webchat 不同?

来自分类Dev

如何配置要通过控制台应用程序使用YouTube凭据进行身份验证的网站?

来自分类Dev

如何通过休息服务对用户进行身份验证

来自分类Dev

如何使用AWS Cognito SDK通过使用NodeJS的REST服务对用户进行身份验证?

来自分类Dev

C#登录bot,.Net Framework 4

来自分类Dev

Bot Framework - 通过 Directline C# Bot 发送电子邮件的电子邮件通道

Related 相关文章

  1. 1

    Bot Framework v4 Bot 模拟器身份验证错误请求

  2. 2

    如何通过Google Analytics(分析)Reporting API v4进行身份验证

  3. 3

    使用 Bot Framework C# v4 的动态提示

  4. 4

    在 Microsoft Bot Framework 的 sdk v4 中使用 FormDialog

  5. 5

    检查用户是否使用 PHP 在服务器上通过 Firebase 身份验证进行身份验证?

  6. 6

    通过在 DRF 中扩展用户模型进行身份验证(Django Rest Framework)

  7. 7

    使用MVC4在服务堆栈中不通过MemoryCacheClient进行身份验证的会话

  8. 8

    Bot Framework V4依赖项注入无效

  9. 9

    AdaptiveCard Bot Framework V4 中的日语字符

  10. 10

    Bot Framework V4上的对话框延续问题

  11. 11

    如何通过 Azure 数据存储和 MS Bot Framework 使用(获取和设置)用户数据?

  12. 12

    Microsoft Bot Framework (WebChat) - 500 内部服务器错误

  13. 13

    Microsoft Bot Framework (SDK4 Nodejs):如何让机器人使用 api 执行诸如客户身份验证之类的操作?

  14. 14

    在Bot Framework v4中,如何使用评论框和提交按钮实施评分卡

  15. 15

    无法使用 Bot Framework SDK v4 在 MS Teams 中呈现自适应卡片

  16. 16

    如何使用 SQL 保存 ConversationState 和 UserState Bot Framework v4

  17. 17

    如何使用 Postman 对 Django REST Framework 进行身份验证

  18. 18

    具有基本身份验证Microsoft Bot Framework的HTTP

  19. 19

    具有基本身份验证Microsoft Bot Framework的HTTP

  20. 20

    Xcode5 Bot无法通过git repo进行身份验证

  21. 21

    Django Rest Framework-未提供身份验证凭据

  22. 22

    Django Rest Framework JWT 未提供身份验证凭据

  23. 23

    在 Microsoft bot Framework 中跨渠道验证用户身份

  24. 24

    Bot Framework Emulator 处理新成员的方式是否与 Bot Framework Webchat 不同?

  25. 25

    如何配置要通过控制台应用程序使用YouTube凭据进行身份验证的网站?

  26. 26

    如何通过休息服务对用户进行身份验证

  27. 27

    如何使用AWS Cognito SDK通过使用NodeJS的REST服务对用户进行身份验证?

  28. 28

    C#登录bot,.Net Framework 4

  29. 29

    Bot Framework - 通过 Directline C# Bot 发送电子邮件的电子邮件通道

热门标签

归档