gpt4 book ai didi

javascript - 无法通过 Publisher API 将 APK 上传到 Google Play 开发者

转载 作者:搜寻专家 更新时间:2023-11-01 00:36:56 24 4
gpt4 key购买 nike

我正在使用 nodejs 创建脚本,通过 Publishing API 将我的 APK 上传到 Google Play Developer ,但是它失败了。我认为,APK 文件没什么问题,因为它是一个好文件。那么有解决这个问题的想法吗?

我也尝试分段上传,但返回错误(我会尽快附上)

下面是错误信息:

Upload successful!  Server responded with: {
"error": {
"errors": [
{
"domain": "androidpublisher",
"reason": "apkInvalidFile",
"message": "Invalid APK file."
}
],
"code": 403,
"message": "Invalid APK file."
}
}

我的源代码

var https = require('https');
var request = require('request');
https.post = require('https-post');
var fs = require('fs');

var tokens = process.argv[2];

var formData = {
my_file: fs.createReadStream('example_file.apk')
}



if (tokens != '')
{
var url_create_listing = 'https://www.googleapis.com/androidpublisher/v2/applications/com.example.apps/edits?access_token='+tokens;
request.post( url_create_listing, function (error, response, body) {
var str_body = JSON.parse (body);
var listing_id = str_body.id;

var url_upload = 'https://www.googleapis.com/upload/androidpublisher/v2/applications/com.example.apps/edits/'+listing_id+'/apks?uploadType=media&access_token='+tokens;


var options = {
url: url_upload,
headers: {
'Content-Type': 'application/vnd.android.package-archive'
}
};

request.post( options, function optionalCallback(err, httpResponse, body)
{
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful! Server responded with:', body);
}).pipe(fs.createReadStream('example_file.apk'));
});
}

最佳答案

我认为您对 NodeJS 流的工作原理有误解。

在上面显示的示例代码中,您试图将 request.post 的结果通过管道传输到 fs.createReadStream 中,这是没有意义的,这就是错误,因为您没有发送任何 apk 文件。相反,它应该像下面这样完成。 (我不确定 androidpublisher api 是如何工作的,我假设你的示例显示了正确的用法。)

var url_create_listing = 'https://www.googleapis.com/androidpublisher/v2/applications/com.example.apps/edits?access_token='+tokens;

request.post( url_create_listing, function (error, response, body) {
var str_body = JSON.parse (body);
var listing_id = str_body.id;
var url_upload = 'https://www.googleapis.com/upload/androidpublisher/v2/applications/com.example.apps/edits/'+listing_id+'/apks?uploadType=media&access_token='+tokens;

// request module is capable of auto detecting the Content-Type header
// based on the file extension.
var options = {
url: url_upload
};

fs.createReadStream('example_file.apk')
.pipe(request.post(options, function optionalCallback(err, httpResponse, body){
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful! Server responded with:', body);
}));

关于javascript - 无法通过 Publisher API 将 APK 上传到 Google Play 开发者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48274009/

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