問題タブ [actions-on-google]
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.
actions-on-google - ユーザーが Google Home に話しかけていることを認識するために、Google は声紋を提供できますか
私の会話アクションでは、ユーザーが私のサービスを利用する前にユーザーを認証して、他のユーザーではなく真のユーザーであることを確認したいと考えています。Google Home に話しかけている人を認識するために、Google は声紋を提供できますか?
Google が音声を録音しているに違いないと確信しています。そのため、共有されている場合は認証に非常に役立ちます。
actions-on-google - Google アシスタントの「ヘルプ」に応答するには?
Google チームから次のフィードバックを受け取りました。
ユーザーがエージェントに「助けて」と言ったとき、エージェントは実際には、ユーザーが何を言ったり尋ねたりできるかについて何のガイダンスも提供しません。
私の Webhook は Spring Boot に実装されています。Web サービスがヘルプ リクエストにどのように応答できるか考えていますか?
webhooks - Google Home を使用して Web サーバーと通信する
サーバーでホストされているphpで開発されたソーシャルネットワーキングWebサイトがあります。ここでは、人々はメッセージを通じて互いに話すことができます。
Google Home を介して他のユーザーとメッセージを送受信したい。チャットボットのようなものではありません。ただし、ここでは、最初のユーザーが Google ホームから Web サイトにメッセージを送信し、次に 2 番目のユーザーが Web サイトから最初のユーザーにメッセージを送信します。
これは達成できますか?ユーザーがメッセージをモバイルアプリに送信し、アプリがデータをサーバーに送信するように、ある種のモバイルアプリを開発する必要がありますか?
または、api.ai で利用できる webhook を使用する必要がありますか?
どんな助けでも大歓迎です。
actions-on-google - Google アクション アカウントのリンク フロー
「暗黙のフロー」でアカウントのリンクを行うために、アクションの承認フローを作成しました。Web シミュレーターを使用してテストしています。Web シミュレーターでアクションを実行しようとすると、アカウントをリンクするように指示され、URL が表示されます。
その URL を実行すると、次のようになります。
- 私の Java サーブレットは、Google から認証リクエストを受け取ります。文書化されているもの、GOOGLE_CLIENT_ID、REDIRECT_URI、STATE、および「response_type=token」が含まれています
- UserServiceFactory.getUserService().getCurrentUser().getUserId() を使用して、ログインしている Google ID からアクセス トークンを作成します。
- ACCESS_TOKEN、token_type=bearer、および state= 最初に受け取った状態文字列を含むリダイレクト URI への URL を作成します。
- そのリンクを含むユーザー用の Web ページを作成して、ユーザーがクリックできるようにします。リンクが実行され、アカウントがリンクされます。
これはうまく機能し、応答は次のような URL を含む空白のページです。
ただし、ユーザーがログインしていることを確認し、リンクしたい Google アカウントにログインできるフローが必要でした。
そのため、必要に応じてログアウトするためのリンクも提示します。リンクは userService.createLogoutURL(thisUrl) を使用して作成されます
その場合は、userService.createLoginURL(thisUrl) を使用して作成されたログイン用のリンクを提示します。
別の Google ID でログインすると、元のページに戻り、再度ログアウトするか、[アカウントをリンク] リンクをクリックできます。
「アカウントのリンク」リンクをクリックすると、ログアウトする前に正常に機能していたのとまったく同じリンク (異なる ACCESS_TOKEN 値を除く) と別のアカウントで再度ログインすると、応答は空白になります。 「 https://www.google.com/?result_code=FAILURE&result_message=Account+linking+failed」という URL のページ
2 つの注意事項:
- ログアウトして同じアカウントで再度ログインすると、「アカウントのリンク」URL は正常に機能します。
- プロセスの開始時にまったくログインせず、ログインしてから「アカウントのリンク」リンクを使用すると、正常に機能します
そのため、失敗するのは、ログイン、ログアウト、別のアカウントでのログイン、クリックしてアカウントをリンクするときだけです。そんな時は失敗です。
ブラウザーが最初のアカウントにログインし、フロー中に変更されない限り、アカウントは問題ではありません。複数の異なるアカウントが機能します。
正直なところ、これがどのように起こっているのか想像できません。
これを Google Home アプリで行うとさらに悪化します。「不正な形式のリクエスト エラー」ページが返され、基本的に動作が完全に停止します。アクションの停止/開始は役に立ちませんでした。Web サービスの停止/開始は役に立ちませんでした。Android デバイスを再起動しても解決しませんでした。Google Home アプリからのリンク アカウントが完全に壊れていました。再び機能させることができた唯一の方法は、Android デバイスの Chrome ブラウザーでアカウント リンク URL (Web シミュレーターから取得したもの) を使用することでした。これにより、すべてが「リセット」されたように見えました。
actions-on-google - プロンプト サーバー側の変更
私はaogに取り組み始めています。現在、SDK と WebSimulator のみを使用しています。私が達成しようとしているのは、以前に設定したプロンプトを変更することです。たとえば、新しい情報が利用可能になったためです。私は失敗する次のことを試しました:
最初のプロンプトのみが表示され、次に (ユーザーが応答した後にのみ) 2 番目のプロンプトが表示されます。
プロンプトサーバー側を変更することはまったく可能ですか? どうすればそれができますか?または、回避策はありますか?
dialogflow-es - Webhook 応答が機能しない api.ai:Failed to parse SDKResponse from http_response Actions On Google
Action on Google の実装に api.ai Webhook を使用しています。ここに記載されているリクエストとレスポンスのフォーマットに従っています
Webhook から送り返すレスポンスは
これを Google ホームの Web シミュレーターでテストすると、「エージェントは現在応答していません。すぐに再試行してください」という応答 JSON が表示されます。
応答のデバッグ情報は
「http_response から SDKResponse を解析できませんでした: 'HTTP/1.1 200 OK\r\nContent-Type: application/json;charset=UTF-8\r\nContent-Length: 218\r\nConnection: keep-alive\r\nDate : 2017 年 1 月 8 日 21:47:00 GMT\r\nサーバー: nginx/1.11.2\r\nAccess-Control-Allow-Credentials: true\r\nAssistant-Interaction-Error-Code: 1\r\nAssistant -Interaction-Error-Message: Empty speech response\r\nCache-control: no-cache=\"set-cookie\"\r\nSet-Cookie: AWSELB=9D5B4D210CCFFAF1BE1E0CD7C7E6FCBD7B46140CAA45DBF2953C1CA6A2C5B5AD15740DAC3D9FC21AE7E6356E101785BA33F8274D819A39085F4BDBBE52D3F44CD1BB461230;PATH=/\r\nX-Cache: Missクラウドフロントから\r\n経由: 1.1 51c76241371dfc20d25094a51b4759eb.cloudfront.net (CloudFront)\r\nX-Amz-Cf-Id: bP2EaYL-00IkMABSCWhwbaDr5GU7sIgC02OB-31LGojecexWQayetQ==\r\n\r\n{\"\" "空の音声応答\",\"apiResponse\":{\"id\":\"ac3551e9-1f71-4f38-8ef7-efa8acff78aa\",\"timestamp\":\"2017-01-08T21:47:00.191 Z\",\"result\":{},\"status\":{\"code\":200,\"errorType\":\"success\"},\"sessionId\":\"1483912013331 \"}}'"
ここで何が間違っているのかわかりません。
アップデート:
音声メッセージを ASCII 文字に変換しましたが、ホームは次のメッセージで応答しています。
音声ラベルに添付された応答で送信しているものの代わりに。また、シミュレーターに表示される JSON は、webhook から返されるものではありません。
actions-on-google - ApiAssistant の getUser() メソッド
User_id
リクエストから取得しようとしています。現在API.AI
、実際に配線する前にスキルを構築するために使用していGoogle Home API
ます。次のスニペットを使用すると、
「TypeError: Assistant.ApiAiAssistant.getUser で null のプロパティ 'データ' を読み取れません」
getUser()
で直接テストするときにメソッドを使用できないのAPI.AI
ですか? エラーを起こさずに をHome Simulator
呼び出すには、を完全に展開してテストする必要がありますか?getUser()
ありがとう!
actions-on-google - Google Home が「再開」という言葉を間違って発音する
「再開」(一時停止/再生/再開のように)という言葉を発する新しいアクションを開発しています。この場合、Google Home はその単語を「履歴書」と発音します。
SSML が発音を処理するタグをサポートしていることは知っていますが、現在 Google Home で実装されているようには見えません。
最悪の場合、テキストをハックして「再ズーム」することもできますが、よりエレガントな解決策を見つけたいと思います。アイデア?
actions-on-google - Google アクション パッケージの「暗黙のトリガー」とは何ですか?
Google アクションが拒否されました。その理由の 1 つは次のとおりです。
エージェントのアクション パッケージに暗黙的なトリガーが多すぎます。呼び出し名を含まないアクション パッケージ内のクエリ パターンの数を 10 未満に制限してください。
私のuserSays
オブジェクトには約 30 のフレーズが含まれています。これは、アシスタントがユーザーからのあらゆるタイプの入力を理解し、必要なパラメーターを抽出できるように、API.AI のトレーニング システムを使用したためです。これはGoogleが言及しているものですか?私は何か間違ったことをしていますか?