Google Assistant API第2版用户的存储空间

时间:2018-11-08 16:14:50

标签: python dialogflow actions-on-google

我正在尝试使用Dialogflow v2 API开发Google Action

我的函数将值保存到用户存储,如下所示

def save_value(value):
res = {
  "fulfillmentText": "Set value to {}".format(int(value)),
  "payload": {
    "google": {
      "userStorage": str(value)
    }
  }
}
print ("Saved value")
response = jsonify(res)
return response

我从Dialogflow中的测试中得到了以下回馈

{
  "fulfillmentText": "Set value to 36237269",
  "payload": {
    "google": {
      "userStorage": "36237269"
    }
  } 
}

在整个会话期间都可以使用,我可以通过

在以后的意图中使用它
 value = request_json['originalRequest']['data']['user']['userStorage']

但是,数据仅存储一个会话-如果我再次调用动作,则不会保存任何内容。

这是使用用户存储的正确方法吗?有没有人成功地在Python中使用它?

“响应”失败

{
  "responseMetadata": {
    "status": {
      "code": 10,
      "message": "Failed to parse Dialogflow response into AppResponse because of empty speech response",
      "details": [
        {
          "@type": "type.googleapis.com/google.protobuf.Value",
          "value": "{\"id\":\"816605a7-f7e0-4d37-a490-c84ff63fb7dd\",\"timestamp\":\"2018-11-08T17:18:49.422Z\",\"lang\":\"en-us\",\"result\":{},\"alternateResult\":{},\"status\":{\"code\":206,\"errorType\":\"partial_content\",\"errorDetails\":\"Webhook call failed. Error: 500 Internal Server Error\"},\"sessionId\":\"ABwppHHai3qsY2WPZWezmh9Q_bUF45aD51GbQ81sUDF7iSrRLA2m8KFgZ1ZYavnCv3fAckW1tcoJdydZTXQY5Nw\"}"
        }
      ]
    }
  }
}

有效的“响应”

{
  "conversationToken": "[]",
  "finalResponse": {
    "richResponse": {
      "items": [
        {
          "simpleResponse": {
            "textToSpeech": "Text"
          }
        }
      ]
    }
  },
  "responseMetadata": {
    "status": {
      "message": "Success (200)"
    },
    "queryMatchInfo": {
      "queryMatched": true,
      "intent": "047ad9d9-0180-47f9-88bd-e5ffc8936c08"
    }
  },
  "userStorage": "36237269"
}

正在处理“请求”

{
  "user": {
    "userId": "ABwppHE5H0FKrXKk8PjJyzZJ12OSMQcjxuT2NnfPAgLvai0UsfWEoYE8R_L8qLQdqY29sOnsZhQhE5G4XVVXiGs",
    "locale": "en-US",
    "lastSeen": "2018-11-08T17:18:16Z",
    "userStorage": "36237269"
  },
  "conversation": {
    "conversationId": "ABwppHE6BwK2zIBKxHA8hc9uBGumVgKbbNGHhRVFz7O6yrxxa1WJ_xtKNqhesj3EwNCVlestM-bF6tDWzZhqUXE",
    "type": "ACTIVE",
    "conversationToken": "[]"
  },
  "inputs": [
    {
      "intent": "actions.intent.TEXT",
      "rawInputs": [
        {
          "inputType": "KEYBOARD",
          "query": "when is the next bus"
        }
      ],
      "arguments": [
        {
          "name": "text",
          "rawText": "when is the next bus",
          "textValue": "when is the next bus"
        }
      ]
    }
  ],
  "surface": {
    "capabilities": [
      {
        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
      },
      {
        "name": "actions.capability.WEB_BROWSER"
      },
      {
        "name": "actions.capability.AUDIO_OUTPUT"
      },
      {
        "name": "actions.capability.SCREEN_OUTPUT"
      }
    ]
  },
  "isInSandbox": true,
  "availableSurfaces": [
    {
      "capabilities": [
        {
          "name": "actions.capability.WEB_BROWSER"
        },
        {
          "name": "actions.capability.AUDIO_OUTPUT"
        },
        {
          "name": "actions.capability.SCREEN_OUTPUT"
        }
      ]
    }
  ],
  "requestType": "SIMULATOR"
}

“请求”失败

{
  "user": {
    "userId": "ABwppHE5H0FKrXKk8PjJyzZJ12OSMQcjxuT2NnfPAgLvai0UsfWEoYE8R_L8qLQdqY29sOnsZhQhE5G4XVVXiGs",
    "locale": "en-US",
    "lastSeen": "2018-11-08T17:18:41Z"
  },
  "conversation": {
    "conversationId": "ABwppHHai3qsY2WPZWezmh9Q_bUF45aD51GbQ81sUDF7iSrRLA2m8KFgZ1ZYavnCv3fAckW1tcoJdydZTXQY5Nw",
    "type": "ACTIVE",
    "conversationToken": "[]"
  },
  "inputs": [
    {
      "intent": "actions.intent.TEXT",
      "rawInputs": [
        {
          "inputType": "KEYBOARD",
          "query": "when is the next bus"
        }
      ],
      "arguments": [
        {
          "name": "text",
          "rawText": "when is the next bus",
          "textValue": "when is the next bus"
        }
      ]
    }
  ],
  "surface": {
    "capabilities": [
      {
        "name": "actions.capability.WEB_BROWSER"
      },
      {
        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
      },
      {
        "name": "actions.capability.SCREEN_OUTPUT"
      },
      {
        "name": "actions.capability.AUDIO_OUTPUT"
      }
    ]
  },
  "isInSandbox": true,
  "availableSurfaces": [
    {
      "capabilities": [
        {
          "name": "actions.capability.WEB_BROWSER"
        },
        {
          "name": "actions.capability.SCREEN_OUTPUT"
        },
        {
          "name": "actions.capability.AUDIO_OUTPUT"
        }
      ]
    }
  ],
  "requestType": "SIMULATOR"
}

0 个答案:

没有答案