Javascript &引用;失败:尝试创建此媒体项目时出错。”;
我正在尝试使用Google api在Google Photos上上传照片,但我总是遇到以下错误:Javascript &引用;失败:尝试创建此媒体项目时出错。”;,javascript,node.js,google-photos-api,Javascript,Node.js,Google Photos Api,我正在尝试使用Google api在Google Photos上上传照片,但我总是遇到以下错误: "status":{"code":3,"message":"Failed: There was an error while trying to create this media item."}} 我认为问题在于我拍摄照片的二进制数据的方式 在这段代码中,我遵循google photo api开发者文档,它说,在获得授权后: 1-将原始字节上载到Google服务器:获取上载令牌 2-使用上载令牌
"status":{"code":3,"message":"Failed: There was an error while trying to create this media item."}}
我认为问题在于我拍摄照片的二进制数据的方式
在这段代码中,我遵循google photo api开发者文档,它说,在获得授权后:
1-将原始字节上载到Google服务器:获取上载令牌
2-使用上载令牌创建媒体项
这是我的节点js代码:
const photo = fs.readFileSync("fbimages/"+req.session.id_client+"/Prague/2020-05-30T17:29:14+0000_0.png", {
'encoding': 'binary',
'flag' : 'r'
});
var url= 'https://photoslibrary.googleapis.com/v1/uploads';
var headers= {
'Authorization': 'Bearer '+token,
'Content-type': 'application/octet-stream',
'X-Goog-Upload-Content-Type': 'image/png',
'X-Goog-Upload-Protocol': 'raw',
'X-Goog-Upload-File-Name': "2020-05-30T17:29:14+0000_0.png",
};
var body= photo
request({
url: url,
method:'POST',
headers: headers,
rejectUnauthorized: false,
body: JSON.stringify(body)
}, function(error, response, body1){
if(error)
{
console.log(error);
}
else
{
var upToken = body1.toString();
console.log(upToken);
var url= 'https://photoslibrary.googleapis.com/v1/mediaItems:batchCreate';
var headers= {
'Authorization' : 'Bearer '+token,
'Content-type': 'application/json',
};
var body= {
'newMediaItems': [
{
'description': 'Prague',
'simpleMediaItem': {
'fileName': 'prova',
'uploadToken': upToken,
}
}
]
};
request({
url: url,
method: 'POST',
headers: headers,
rejectUnauthorized: false,
body: JSON.stringify(body),
}, function(error, response, body){
if(error)
{
console.log(error);
}
else
{
res.send(JSON.parse(body));
}
});
}});
如果有人有任何想法,请帮助我 这次修改怎么样 修改点:
- 我认为不需要
。编码:“binary”
- 在本例中,`constphoto=fs.readFileSync(“fig1.png”,{flag:“r”})
constphoto=fs.readFileSync(“fig1.png”);`可以使用和
- 在本例中,`constphoto=fs.readFileSync(“fig1.png”,{flag:“r”})
- 请将
constphoto=fs.readFileSync的
修改为body:JSON.stringify(body)
(“fig1.png”,{flag:“r”})代码>photo
- 在这次修改中,它假定您的
令牌可以用于此API。请小心这个
- 当您想直接将上传的图像放入alubmn时,请包括
以请求albumId
https://photoslibrary.googleapis.com/v1/mediaItems:batchCreate
var file=fs.readFileSync(“fbimages/”+req.session.id\u client+“/”+titolo+“/”+foto,'binary');var photo=Buffer.from(文件'binary')代码>
const photo = fs.readFileSync("fbimages/"+req.session.id_client+"/Prague/2020-05-30T17:29:14+0000_0.png", {
'encoding': 'binary',
'flag' : 'r'
});
var url= 'https://photoslibrary.googleapis.com/v1/uploads';
var headers= {
'Authorization': 'Bearer '+token,
'Content-type': 'application/octet-stream',
'X-Goog-Upload-Content-Type': 'image/png',
'X-Goog-Upload-Protocol': 'raw',
'X-Goog-Upload-File-Name': "2020-05-30T17:29:14+0000_0.png",
};
var body= { 'media-binary-data': photo }
request({
url: url,
method:'POST',
headers: headers,
rejectUnauthorized: false,
body: JSON.stringify(body)
}, function(error, response, body1){
const photo = fs.readFileSync("fbimages/"+req.session.id_client+"/Prague/2020-05-30T17:29:14+0000_0.png", { flag: "r" });
var url = "https://photoslibrary.googleapis.com/v1/uploads";
var headers = {
Authorization: "Bearer " + token,
"Content-type": "application/octet-stream",
"X-Goog-Upload-Content-Type": "image/png",
"X-Goog-Upload-Protocol": "raw",
"X-Goog-Upload-File-Name": "2020-05-30T17:29:14+0000_0.png",
};
request(
{
url: url,
method: "POST",
headers: headers,
rejectUnauthorized: false,
body: photo,
},
function (error, response, body1) {