dialogflow-es - 为什么我在 Google 上为 Actions 实施数字商品购买时会收到 402 请求代码?
问题描述
我的助手应用程序的状态为PEMISSION_DENIED
并显示一条消息
调用者没有权限
我已遵循此人的所有说明:数字商品实施
我已经创建APK
、管理SKU
(有效状态)项目、已发布的 Android 应用程序(有效状态)、Actions API
从我的项目启用Google API Console
并service account key
为我的项目创建了一个,并发布了我的 Assistant 应用程序以beta
对其进行测试。Connect App
状态是并且connected
切换开关处于打开状态。我认为所需的一切都已完成,但错误消息没有得到修复,这意味着我无法收到我在Google Developer Console
.
const createJwtClient = () => {
const scopes = [
"https://www.googleapis.com/auth/actions.purchases.digital"
];
return new google.auth.JWT(
serviceAccount.client_email,
null,
serviceAccount.private_key,
scopes,
null
);
};
const packageName = 'com.myproject.name'
const getSkus = (tokens, conv) => {
return new Promise((resolve, reject) => {
const url = `https://actions.googleapis.com/v3/packages/${packageName}/skus:batchGet`;
const convId = conv.request.conversation.conversationId;
const param = {
conversationId: convId,
skuType: "SKU_TYPE_IN_APP",
ids: [
"item-id1",
"item-id2"
]
};
request.post(url, {
auth: {
bearer: tokens.access_token
},
json: true,
body: param
}, (err, httpResponse, body) => {
if (err) {
reject(err);
} else {
const statusCode = httpResponse.statusCode;
const statusMessage = httpResponse.statusMessage;
console.log(`${statusCode}: ${statusMessage}`);
console.log(JSON.stringify(body));
resolve(body);
}
});
});
};
我希望我能以 JSON 形式获得可购买的物品,但我的获取请求SKU
似乎失败了。
但我确实access_token
使用JWT
我的service account key
.
你能指出一些错误的地方吗?
解决方案
首先,确保您的测试电子邮件不同于 Play 管理中心管理员的电子邮件。其次,确保您已将托管产品和订阅添加到 Google Play 控制台(见下文)Google Github 上的操作示例最近也已更新,并且Kotlin APK在自述文件的“入门”部分中包含所有细节.
推荐阅读
- python - 将数据框转换为日期格式
- javascript - 如何访问显示为无的元素属性?
- python - Lambda 层未正确传递掩码
- javascript - redux 表单元素类型无效:应为字符串(用于内置组件)
- leaflet - 图层控件中的图层标记
- java - 使用 UnicastReceivingChannelAdapter 处理 UDP 以创建发布-订阅通道
- ruby-on-rails - Rails:无法打开共享对象文件:没有这样的文件或目录
- javascript - 我的 JS 没有处理 HTML 元素
- docker - 如何将来自不同服务器的卷添加到我的 docker-compose 文件中
- list - Haskell递归地将函数应用于每个元素,但首先?