4

私はウェブサーバーの初心者で、Amazon Echo から PHP スクリプトを実行しようとしています。

基本的に、Apache Web サーバーを実行しています (インターネットからポート 443 経由でアクセスできます)。Web サーバー内に PHP スクリプトもありますhttps://web-server.mine/script.php

基本的な Web 認証を使用して、Web ブラウザーから PHP スクリプトを正常に実行できました。

今、Amazon Alexa スキル キットから POST リクエストを作成しようとしていますが、URL を呼び出すことができるように資格情報を渡す方法がわかりません。

4

1 に答える 1

2

私はあなたが何を尋ねているのか完全に明確ではないので、私の解釈のすべてに答えようとします.

  1. URL にアクセスしようとしているのが Alexa スキルであることを確認しようとしている場合は、POST データから applicationId を確認して認証する最も簡単な方法を見つけました。

    // Get raw POST data
    $post = file_get_contents( 'php://input' );
    
    // Decode the JSON into a stdClass object
    $post = json_decode( $post );
    
    // Check the applicationId to make sure it's your Alexa Skill
    if ( 'amzn1.echo-sdk-ams.app.[your-unique-value-here]' == $post->session->application->applicationId ) {
        // Insert code to run if the applicationId matches
        echo 'The applicationId matches!';
    } else {
        // Insert code to run if the applicationId does NOT match
        echo 'The applicationId does NOT match!';
    }
    

    この方法を使用する場合は、次の手順に従って有効な SSL 証明書を作成する必要があります:テスト用の秘密キーと自己署名証明書を作成する

  2. スクリプト内から別の URL への POST 要求を作成しようとしている場合は、次のfile_get_contents()説明に従って使用してみてください: file_get_contents を使用して PHP にデータを投稿する方法?

余談ですが、Alexa Skills の作成をより簡単にするために開発された一連の PHP クラスの使用を検討する価値があるかもしれません

私は個人的に Raspberry Pi で Node.js を実行し、Node パッケージを使用してalexa-app-serveralexa-app複数のスキルの作成とホスティングをより簡単にしています。これに興味がある場合は、これらのパッケージへの最新のリンクについて、「nodejs alexa-app-server」を Google で検索してください。

于 2015-12-16T12:48:09.317 に答える