Eki Eqbal
Eki Eqbal

Reputation: 6017

Having an issue with Dialogflow API WebhookResponse V2 for Actions for Google

I'm testing Actions for Google, so I created some simple Sinatra application which looks something like:

    require 'sinatra'
    require 'json'

    post '/google_assistant_api' do
      content_type :json

      case intent_name
      when "input_welcome"
        decorated_response
      when "Recipe name"
        basic_card
      end
    end

    private

      def decorated_response
        {
          source: "test source",
          speech: "speech",
          display_text: "something"
        }.to_json
      end

      def intent_name
        parsed_request["queryResult"]["intent"]["displayName"]
      end

      def parsed_request
        @parsed_request ||= JSON.parse(request.body.read)
      end

      def basic_card
       {
         "fulfillmentText": "ACTIONS_ON_GOOGLE",
         "fulfillmentMessages": [
           {
             "platform": "PLATFORM_UNSPECIFIED",
             "text": {
               "text": [
                 "string text"
               ]
             },
             "image": {
               "imageUri": "https://avatars3.githubusercontent.com/u/119195?
s=400&v=4"
             },
             "basicCard": {
               "title": "title string",
               "subtitle": "subtitle",
               "formattedText": "formatted text",
               "image": {
                 "imageUri": "https://avatars3.githubusercontent.com/u/119195"
               },
               "buttons": []
             }
           }
         ],
         "source": "source string"
       }.to_json
      end

Please note that I'm using V2 of the API and testing using google assistant:

enter image description here

I tried many other response formats based on https://gist.github.com/manniru/f52af230669bd3ed2e69ffe4a76ab309 with no luck. I keep getting:

Sorry! there was no response from the Agent. Please try later.

enter image description here

Is there anyone who tried non nodejs response with luck? I would appreciate any sample response as the simple response seems to be working, however as for the basic card I'm having no luck.

Upvotes: 0

Views: 610

Answers (1)

mattcarrollcode
mattcarrollcode

Reputation: 3469

Dialogflow's v2 API uses a different format for webhook requests and responses which is documented here:

  1. Dialogflow v2 Webhook Request
  2. Dialogflow v2 Webhook Response

It appears that your code is using the old format.

Upvotes: 1

Related Questions