首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alexa BDD试验

Alexa BDD试验
EN

Stack Overflow用户
提问于 2019-12-16 19:30:38
回答 1查看 118关注 0票数 0

我正试图在我的Alexa技能上实现BDD测试。我正在使用Java来实现它。

基本上,我希望在我的测试套件中以编程方式触发任意意图,并断言响应,但我找不到实现它的任何材料。

我所能找到的只有com.amazon.ask.model.services.skillMessaging.SkillMessagingServiceClient.sendSkillMessage,他的Javadoc说:

向指定用户的技能发送消息请求。

这是我所需要的,但是,为了创建一个com.amazon.ask.model.services.skillMessaging.SkillMessagingServiceClient,我必须执行以下操作:

代码语言:javascript
复制
SkillMessagingServiceClient client = new SkillMessagingServiceClient(
                DefaultApiConfiguration.builder()
                        .withApiClient(ApacheHttpApiClient.standard())
                        .withSerializer(new JacksonSerializer())
                        .withAuthorizationValue("<authorization_token").build(),
                DefaultAuthenticationConfiguration.builder()
                        .withClientId("<client_id>")
                        .withClientSecret("<client_secret>")
                        .build()
        );

为了得到client_idclient_secret

  1. 我已经使用Amazon控制台访问了登录。
  2. 我创建了一个安全档案
  3. 我使用启用了关于我的技能的帐户链接
    1. 授权URI:https://www.amazon.com/ap/oa
    2. 访问令牌URI:https://api.amazon.com/auth/o2/token
    3. 客户ID和客户端机密,从第2点开始
    4. 作用域:alexa:skill_messagingprofile:user_id
    5. 身份验证模式: Basic

  1. 我在我的安全配置文件中复制了允许返回web URI中的所有Alexa重定向URL。

因此,现在我的技能可以从Alexa应用程序绑定到我的Amazon帐户,但是:

  1. 总之,我只是想实现测试,而不是绑定我的帐户。我的生产技能不需要这个特性。
  2. 绑定不起作用:在从Alexa应用程序确认后,我收到一个错误。
  3. 但是,我不知道如何收集身份验证令牌,除非我从Cloudwatch日志捕获它并使用它.直到它到期

在第2点,我可以看到失败的原因:oauthError (https://skills-store.amazon.it/external/link-result?success=false&errorKey=oauth-error&languageCode=it_IT&skillId=amzn1.ask.skill......&skillStage=development)。该网页包含指向RFC6749的链接。

我目前被困,我不能完全测试我的技能,也是因为它是不可能测试Alexa球员,特别是在意大利语,除非你直接测试它使用物理设备。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-19 22:45:45

您似乎混淆了帐户链接和技能凭据。帐户链接是为了代表用户对外部服务进行api调用。我希望我的技能能够访问用户的google配置文件。

因此,对于您的用例,用于对与技能相关的Alexa服务进行API调用的技能凭据似乎足够好。既然您已经获得了clientId,客户端secrect,我建议您探索Ask-Smapi-Sdk。您可以按照自述通过ask-cli检索refreshToken,并构建smapi客户端。使用SmapiClient,您可以使用Smapi模拟apis来触发您的意图,特别是在您的smapi客户机中定义的函数simulateSkillV1

希望这就是你所需要的。✧(·̀ω·́)

谢谢,

沈阳

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59363145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档