質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Amazon Echo

Amazon Echoは、Amazon社が開発したスマートスピーカーです。人工知能「Alexa」を搭載しており、「アレクサ」と話しかけることで起動。音楽の再生、アラームのセット、ニュースの読み上げなどを音声操作機能を持ちます。

Alexa

Alexa(アレクサ)は、米アマゾンが開発したクラウドベースのAIアシスタント。Amazon EchoやEcho dotに搭載され、話かけると音楽を再生したり、天気予報やスケジュールなど様々な情報を提供します。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

594閲覧

Alexa リマインダーを削除するメソッドdeleteRemindes()が実行できない

yuta_kg

総合スコア24

Amazon Echo

Amazon Echoは、Amazon社が開発したスマートスピーカーです。人工知能「Alexa」を搭載しており、「アレクサ」と話しかけることで起動。音楽の再生、アラームのセット、ニュースの読み上げなどを音声操作機能を持ちます。

Alexa

Alexa(アレクサ)は、米アマゾンが開発したクラウドベースのAIアシスタント。Amazon EchoやEcho dotに搭載され、話かけると音楽を再生したり、天気予報やスケジュールなど様々な情報を提供します。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2019/09/07 13:44

編集2022/01/12 10:55

Alexa skill kit for nodejs、Alexa リマインダーAPIを使って、リマインダースキルを作成しています。
登録したリマインダーを削除するインテント(DeleteIntent)を以下のように実装しました。

Javascript

1//リマインダーを削除 2const DeleteIntentHandler = { 3 canHandle(handlerInput) { 4 return handlerInput.requestEnvelope.request.type === 'IntentRequest' 5 && handlerInput.requestEnvelope.request.intent.name === 'DeleteIntent'; 6 }, 7 // handle の前に async 追加 8 async handle(handlerInput) { 9 10 // リクエストからアクセストークンを取得 11 const requestEnvelope = handlerInput.requestEnvelope; 12 const responseBuilder = handlerInput.responseBuilder; 13 const consentToken = requestEnvelope.context.System.apiAccessToken; 14 15 16 // check for confirmation. if not confirmed, delegate 17 switch (requestEnvelope.request.intent.confirmationStatus) { 18 case 'CONFIRMED': 19 // intent is confirmed, so continue 20 console.log('Alexa confirmed intent, so clear to create reminder'); 21 break; 22 case 'DENIED': 23 // intent was explicitly not confirmed, so skip creating the reminder 24 console.log('Alexa disconfirmed the intent; not creating reminder'); 25 return responseBuilder 26 .speak('わかりました。リマインドしません。') 27 .getResponse(); 28 case 'NONE': 29 default: 30 console.log('delegate back to Alexa to get confirmation'); 31 return responseBuilder 32 .speak('うおおお') 33 .addDelegateDirective() 34 .getResponse(); 35 } 36 if (!consentToken) { 37 return responseBuilder 38 .speak(`アレクサアプリにカードを送信しました。リマインダーの権限を有効にしてください。`) 39 .withAskForPermissionsConsentCard(PERMISSIONS) 40 .getResponse(); 41 } 42 43 try { 44 const client = handlerInput.serviceClientFactory.getReminderManagementServiceClient(); 45 46 // リマインドを削除 47 await client.deleteReminders(); 48 49 } catch (error) { 50 if (error.name !== 'ServiceError') { 51 console.log(`error: ${error.stack}`); 52 const response = responseBuilder.speak(`おっと。エラーが発生しました。`).getResponse(); 53 return response; 54 } 55 throw error; 56 } 57 58 return responseBuilder 59 .speak(`リマインダーを削除しました。`) 60 .getResponse(); 61 }, 62}; 63

すると以下のようなエラーがCloudWatchにログとして残っていました。

2019-09-07T12:38:21.469Z 4e8e9e92-fefe-452a-9d9f-2133cb3f7e23 error: TypeError: client.deleteReminders is not a function at Object.handle (/var/task/index.js:111:26) at GenericHandlerAdapter.<anonymous> (/var/task/node_modules/ask-sdk-runtime/dist/dispatcher/request/handler/GenericHandlerAdapter.js:63:47) at step (/var/task/node_modules/ask-sdk-runtime/dist/dispatcher/request/handler/GenericHandlerAdapter.js:44:23) at Object.next (/var/task/node_modules/ask-sdk-runtime/dist/dispatcher/request/handler/GenericHandlerAdapter.js:25:53) at /var/task/node_modules/ask-sdk-runtime/dist/dispatcher/request/handler/GenericHandlerAdapter.js:19:71 at new Promise (<anonymous>) at __awaiter (/var/task/node_modules/ask-sdk-runtime/dist/dispatcher/request/handler/GenericHandlerAdapter.js:15:12) at GenericHandlerAdapter.execute (/var/task/node_modules/ask-sdk-runtime/dist/dispatcher/request/handler/GenericHandlerAdapter.js:61:16) at GenericRequestDispatcher.<anonymous> (/var/task/node_modules/ask-sdk-runtime/dist/dispatcher/GenericRequestDispatcher.js:173:58) at step (/var/task/node_modules/ask-sdk-runtime/dist/dispatcher/GenericRequestDispatcher.js:44:23)

以下のようにドキュメントを見ると、deleteReminders()はReminderManagementServiceに紐づくメソッドなのですが、
上記のエラーが出る理由は何でしょうか?

class ReminderManagementServiceClient extends BaseServiceClient { deleteReminder(alertToken: string): Promise<void>; getReminder(alertToken: string): Promise<services.reminderManagement.GetReminderResponse>; updateReminder(alertToken: string, reminderRequest: services.reminderManagement.ReminderRequest): Promise<services.reminderManagement.ReminderResponse>; deleteReminders(): Promise<void>; getReminders(): Promise<services.reminderManagement.GetRemindersResponse>; createReminder(reminderRequest: services.reminderManagement.ReminderRequest): Promise<services.reminderManagement.ReminderResponse>; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問