gpt4 book ai didi

node.js - Firebase 功能访问 Google API(用于应用内购买信息)的服务帐户身份验证失败

转载 作者:IT老高 更新时间:2023-10-28 23:17:12 25 4
gpt4 key购买 nike

我们正在准备一个 firebase 触发器来处理 android 的实时开发者通知,我们必须使用 Google Play Developer API 来了解用户订阅的详细信息。因此,我们在 Google Play 控制台中关联了 firebase 服务帐户,并授予了必要的访问权限。

我们使用 google 的 nodejs 库为 googleapis ( github link ) 写了一段这样的代码:

return google.auth.getClient({
keyFile: path.join(__dirname, './service-account.json'),
scope: 'https://www.googleapis.com/auth/androidpublisher'
}) .then((client) => {
const androidpublisher = google.androidpublisher({
version: 'v3',
auth: client
});
const params = {
packageName: ANDROID_PACKAGE_NAME,
subscriptionId: ANDROID_SUBSCRIPTIONID,
token: token
};
return androidpublisher.purchases.subscriptions.get(params)
.then(res => {
console.log(`The response is ${res.data}`);
return null;
})
.catch(error => {
console.error(error);
});
});

但它返回给我们一个错误状态:'无效的凭据',我对此有点迷茫。我已经使用带有授权 token 的 curl 该 API 进行了测试,它也显示 401 错误响应。

我不确定我上面的流程是否正确,有人可以给我任何建议吗?

最佳答案

使用来自 google-auth-libraryJWTGoogle sample

const googleapis = require('googleapis');
const { JWT } = require('google-auth-library');
const serviceAccount = require('./serviceAccountKey.json');

const getAuthorizedClient = () => new JWT({
email: serviceAccount.client_email,
key: serviceAccount.private_key,
scopes: ['https://www.googleapis.com/auth/androidpublisher']
});

const getAndroidpublisher = () => googleapis.google.androidpublisher({
version: 'v3',
auth: getAuthorizedClient()
});

const requestProductValidation = data => new Promise((resolve, reject) => {
getAndroidpublisher().purchases["products"].get(data, (err, response) => {
if (err) {
console.log(`The API returned an error: ${err}`);
resolve({status: "Error"});
} else {
const isValid = response && response.data && response.data.purchaseState === 0;
resolve({status: isValid ? "OK" : "Error"});
}
});
});

exports.purchaseValidationAndroid = functions.https.onCall((data, context) => {
return requestProductValidation(data);
});

data 包含 productIdtokenpackageName

关于node.js - Firebase 功能访问 Google API(用于应用内购买信息)的服务帐户身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51982397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com