android-publisher
API(用于验证IAP)只有Python和Java客户端包装器。对于 Node.js,似乎唯一的方法是通过 http,但是,我想知道是否有一种方法可以使用 Google API Node.js 客户端来生成 OAuth 服务到服务身份验证的授权令牌并传递它到 http 调用。手动生成 JWT 令牌是一个艰巨且漫长的过程。是否有最佳实践/推荐的方法来以简单的方式做到这一点?
Eldermao,只需使用 google.auth.GoogleAuth 获取 JWT 客户端即可通过 Google API 进行身份验证。这是谷歌代码的示例:
// Before running the sample:
// - Enable the API at:
// https://console.developers.google.com/apis/api/androidpublisher.googleapis.com
// - Login into gcloud by running:
// `$ gcloud auth application-default login`
// - Install the npm module by running:
// `$ npm install googleapis`
const {google} = require('googleapis');
const androidpublisher = google.androidpublisher('v3');
async function main() {
const auth = new google.auth.GoogleAuth({
// Scopes can be specified either as an array or as a single, space-delimited string.
scopes: ['https://www.googleapis.com/auth/androidpublisher'],
});
// Acquire an auth client, and bind it to all future calls
const authClient = await auth.getClient();
google.options({auth: authClient});
// Do the magic
const res = await androidpublisher.purchases.subscriptions.get({
// The package name of the application for which this subscription was purchased (for example, 'com.some.thing').
packageName: 'placeholder-value',
// The purchased subscription ID (for example, 'monthly001').
subscriptionId: 'placeholder-value',
// The token provided to the user's device when the subscription was purchased.
token: 'placeholder-value',
});
console.log(res.data);
// Example response
// {
// "acknowledgementState": 0,
// "autoRenewing": false,
// "autoResumeTimeMillis": "my_autoResumeTimeMillis",
// "cancelReason": 0,
// "cancelSurveyResult": {},
// "countryCode": "my_countryCode",
// "developerPayload": "my_developerPayload",
// "emailAddress": "my_emailAddress",
// "expiryTimeMillis": "my_expiryTimeMillis",
// "externalAccountId": "my_externalAccountId",
// "familyName": "my_familyName",
// "givenName": "my_givenName",
// "introductoryPriceInfo": {},
// "kind": "my_kind",
// "linkedPurchaseToken": "my_linkedPurchaseToken",
// "obfuscatedExternalAccountId": "my_obfuscatedExternalAccountId",
// "obfuscatedExternalProfileId": "my_obfuscatedExternalProfileId",
// "orderId": "my_orderId",
// "paymentState": 0,
// "priceAmountMicros": "my_priceAmountMicros",
// "priceChange": {},
// "priceCurrencyCode": "my_priceCurrencyCode",
// "profileId": "my_profileId",
// "profileName": "my_profileName",
// "promotionCode": "my_promotionCode",
// "promotionType": 0,
// "purchaseType": 0,
// "startTimeMillis": "my_startTimeMillis",
// "userCancellationTimeMillis": "my_userCancellationTimeMillis"
// }
}
这个怎么样:https://www.npmjs.com/package/googleapis? 它是 Google 的官方库。