首页 > 解决方案 > 缺少用于在新的 Actions SDK 上进行交易的 conversationId

问题描述

我正在尝试https://actions.googleapis.com/v3/packages/{packageName}/skus:batchGet按照第 2 节中的说明发布请求。在非消耗性数字交易指南中。在此处粘贴相关代码段:

return jwtClient.authorize((err, tokens) => {
    if (err) {
      throw new Error(`Auth error: ${err}`);
    }

    const packageName = 'com.example.projectname';

    request.post(`https://actions.googleapis.com/v3/packages/${packageName}/skus:batchGet`, {
      'auth': {
        'bearer': tokens.access_token,
      },
      'json': true,
      'body': {
        'conversationId': conversationId,
        'skuType': 'APP',
        // This request is filtered to only retrieve SKUs for the following product IDs
        'ids': ['nonconsumable.1']
      },
    }, (err, httpResponse, body) => {
      if (err) {
        throw new Error(`API request error: ${err}`);
      }
      console.log(`${httpResponse.statusCode}: ${httpResponse.statusMessage}`);
      console.log(JSON.stringify(body));
    });
  });
});

请求正文应该有一个conversationId字段。虽然此字段存在于Dialogflow 和旧版 Actions SDK中,但据我所知,新的 Actions SDK webhook 请求中缺少该字段。

新的 Actions SDK 文档链接到该数字交易指南,因此我认为它应该是兼容的,但没有发现需要进行调整才能使用它。

conversationId所以我的问题是,当从 webhook 进行交易以满足来自新 Actions SDK 的请求时,如何获取它?

标签: actions-on-google

解决方案


文档中提供的片段不正确。

请使用会话 ID。您可以通过 访问此值conv.session.id


推荐阅读