問題タブ [jovo-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
145 参照

alexa-skill - Jovo フレームワークを使用した Alexa の音声: 発話で IntentName を取得することは可能ですか? ユーザーの発話に基づいてジャンプ先のインテントを決定するにはどうすればよいですか?

次のフローで Alexa スキルを作成しました。

LAUNCH -> AccountLinkingIntent -> CampaignIntent

では、現在、アカウントがすでにリンクされている場合AccountLinkingIntentに転送しています。CampaignIntent

これまで、すべてが正常に機能しています。ActiveContactIntentここで、フローが次のようになるように、別のインテントを追加する必要があります。

LAUNCH -> AccountLinkingIntent -> CampaignIntent / ActiveContactIntent つまり、Fromは、AccountLinkingどの Intent にルーティングするかを決定する必要があります。

呼び出しは次のようになります (CampaignIntent):

または (ActiveContactIntent)

発話に基づいて、Alexa に行き先を伝える必要があります。これまでのところ、次のものがありますAccountLinkingIntent

... return this.toIntent("CampaignIntent"); ...

しかし今、私はこれと同じことを決める必要があります:

IntentName次のような同じことで確認できるように、発話で取得する方法はありますか。

または、おそらく、変数を渡すことが許可されている場合は、メソッドintent_name_by_utteranceの引数として値を渡すこともできます!toIntent

アップデート:

インテント名が返されているかどうかを確認するために、次のことを試しました。

LAUNCH() { return this.toIntent("LinkAccountIntent"); }、

async LinkAccountIntent() { const intent_name = this.$request.getIntentName(); this.tell( Current intent is: ${intent_name}); }、

次の 2 つの方法でスキルを呼び出しました。

give me my latest campaign resultsANDwho is my most active contactは、それぞれの意図に対する発話です。

テストには Alexa Test コンソールを使用しています。どちらの場合も、インテント ( this.$request.getIntentName()) の名前を期待していましたが、最終的には

うーん、私はそれを知りません。

私の意図は、その呼び出し名を使用してスキルを目覚めさせることによって、その発話によって直接インテントを呼び出すことです。

なにか提案を?

0 投票する
1 に答える
1658 参照

amazon-web-services - AccessDeniedException: ユーザー: arn:aws:iam::xxxxxxx:root は実行する権限がありません: lambda:UpdateFunctionCode

この長い投稿で申し訳ありません!できるだけ短くするように最善を尽くしましたが、状況を明確に説明するために必要なすべての情報を入れたかった.

私の問題は、のAWS Lambda function deployment使用に関連してJOVO CLIいます。

スキル関数をローカルから Lambda にデプロイしようとするたびに、次のエラー ブロックが表示されます。解決方法がわかりません。

$ jovo deploy -t lambda --ask-profile officialProfile

しかし$ jovo get alexaSkill --skill-id <Skill ID> --ask-profile officialProfile$jovo deploy --ask-profile officialProfile(追加のパラメーターなしで) 両方のコマンドを問題なく実行できます。

ローカルからコードをデプロイするために、IAM ユーザーとしてログインして ASK プロファイルを作成しました。私が従った手順は次のとおりです。

  1. ask init -p officialProfile
  2. 雇用主が作成した IAM ユーザー資格情報 (E メールとパスワード) でログイン
  3. プロファイルが作成されたことを示す成功メッセージを受け取りました

いくつかの調査を行った後、ポリシーを作成しaws console、次の JSON を追加しました。

次に、IAM ユーザーに次のアクセス許可を追加しました。

  • AWSLambdaFullAccess
  • AWSCodeDeployRoleForLamda
  • そして先ほど作成した上記のポリシー

しかし、何も機能していません。コードを Lambda にデプロイしているときに、まだ同じエラーが発生します。

私の先輩は、ルートユーザーとして AWS にアクセスしようとしていて、ユーザーの ARN を使用する必要があることが問題なのかもしれないと言いました。使い方や設定方法がわかりません。

スキルを構築するために Alexa コンソールにログインするために使用している招待メールを受け取りました。を作成したときASK profile、同じ電子メール アドレスとパスワードを使用してログインしました。これはrootアカウントですか?

そんな中、こんな記事を発見。私も一緒ですAWS Access Key IDAWS Secret Access Keyしかし、私が作成したものが既にあるため、私が何をしているのか、ASK profileそれがさらに問題を引き起こすかどうかを確認したいと思います.

私は今まで、個人の AWS ルート アカウントからスキルを構築していました。IAM ユーザー アカウントを使用するのはこれが初めてです。

アップデート:

@Paradigm の指示に従って、試してみるask deployと、次のエラーが表示されました。