2016-07-12 11 views
0

ラムダを使用する代わりに、Rest APIを使用できますか?私がリクエストを受け取ったため、アレクサが応答として受け入れるものがわかっており、それがPOSTであることがわかっています。したがって、これらすべてをREST APIに接続します。私が尋ねる理由は、プロジェクト全体がJax-RSに基づいているということです。そのため、lamdaや何かを使用することなく、すべてを1か所にまとめたいと考えています。ラムダはそれほど素晴らしいものではありません。Alexa skillレストAPI

だから、アレクサは、ラムダに渡す要求がある:

{ 
    "session": { 
    "sessionId": "SessionId.a82f0b92-3650-4d45-8f12-e030ffc10894", 
    "application": { 
     "applicationId": "amzn1.echo-sdk-ams.app.8f35038e-13ac-4327-8e4f-e5df52dc1432" 
    }, 
    "attributes": {}, 
    "user": { 
     "userId": "amzn1.ask.account.AFP3ZWPOS2BGJR7OWJZ3DHPKMOMNWY4AY66FUR7ILBWANIHQN73QGGUEQZ7YXOLC7NYVD3JPUAHAGUS4ZFXJ6ZMS4EHO2CJFPWFLWLYZLDP7S227ADI54A2ZMLZLDO5CXSIB47ELNY54S2M7FDNJFHTSU67B7HB3UZUN6OUUR5BYS3UBRSIPBG4IWRLHUN36NXDYBWUM3NMQZRA" 
    }, 
    "new": true 
    }, 
    "request": { 
    "type": "IntentRequest", 
    "requestId": "EdwRequestId.bfdb3c27-028b-4224-977a-558129808e9a", 
    "timestamp": "2016-07-11T17:52:55Z", 
    "intent": { 
     "name": "HelloWorldIntent", 
     "slots": {} 
    }, 
    "locale": "en-US" 
    }, 
    "version": "1.0" 
} 

は応答:

{ 
    "version": "1.0", 
    "response": { 
    "outputSpeech": { 
     "type": "PlainText", 
     "text": "Hello World!" 
    }, 
    "card": { 
     "content": "Hello World!", 
     "title": "Greeter", 
     "type": "Simple" 
    }, 
    "shouldEndSession": true 
    }, 
    "sessionAttributes": {} 
} 
+0

解決策をあなたの質問に編集しないでください。代わりに、下記の別の回答として投稿してください。 http://stackoverflow.com/help/self-answer – Matt

答えて

4

あなたができることを確認。実際、あなたがAlexa Developer Portalであなたのスキルを作成している場合、あなたはそのオプションを持っています。注意点は、独自のTLS証明書を管理する必要があり、ユーザーの場所に基づいてレイテンシ/応答性が適切であることを確認する必要があることです。

これをさらに調べたい場合は、AmazonのJavaコード例を使用できます。それらはhttps://github.com/amzn/alexa-skills-kit-javaで見つけることができます。

+0

を参照してください。参考になるもう1つの記事:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/deploying- a-sample-skill-as-a-web-service – Vladan

0

Alexaで使用するRESTfulサービスAPIを確実に設定できます。

Azureで設定した場合、独自の証明書を作成する必要はありません。

+0

これは私がする必要があることです。 Azureのサービスは何のために使うのですか? –

+0

作成する必要があります。 Visual StudioでASP.NET Web APIプロジェクトを作成し、それをAzureに公開することができます。 –

0

残りのAPIをアレクサスキルのエンドポイントとして使用できます。

[intent]

を呼び出すためのアマゾンのサイトで設定されたURLのエンドポイントである - - APIが[Configured_URL]次のように

[Configured_URL]>/**alexa/[intent]** 

に呼び出されますあなたがホストする必要がある意図

の名前です。あなたのサービスに応じて

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/developing-an-alexa-skill-as-a-web-service

https://iwritecrappycode.wordpress.com/2016/04/01/create-an-alexa-skill-in-node-js-and-hosting-it-on-heroku/

+0

私はこの "設定されたURL"の構文に慣れていません - すべてのアレクサの要求がこのようにエンドポイントに来るわけではありません。実際、AlexaがPOSTするエンドポイントは、スキルのためにAmazon開発者コンソールで完全に設定可能です。 –

+0

リクエストの一部としてエンドポイントとPOSTインテントが1つしかないため、Alexa RESTのURLは次のようになります。https:// mydomain/api/alexa Amazonのポータルでは、リクエストの構造がどのようなものであるかがわかります。私はC#でそれを書いたが、それはjsonを出力するどんな言語でもよい。 – smoore4

関連する問題