Не удается загрузить изображение с помощью API Google Фото с помощью NodeJS - PullRequest
3 голосов
/ 17 октября 2019

У меня есть приложение, встроенное в NodeJS. Предполагается, что вы можете загружать изображения в Google Фото с помощью API Google Photos для части аутентификации. Я успешно справляюсь, у меня проблема, когда я пытаюсь загрузить изображения, я получаю маркер загрузки без проблем, но когдая пытаюсь использовать mediaItems: batchCreate возвращает:

"status": {
    "code": 3,
    "message": "Failed: There was an error while trying to create this media item."
  }

Вот мой код для преобразования изображения в base64:

var base64str = fs.readFileSync('1.jpg', 'base64');

А вот запрос, где я получаю ответ загрузитьтокен:

request({
method: 'post',
headers: {
'content-type' : 'application/octet-stream',
'Authorization': `Bearer ${userToken}`,
'X-Goog-Upload-File-Name' :  '1.jpg',
'X-Goog-Upload-Protocol' : 'raw'
},
url: `https://photoslibrary.googleapis.com/v1/uploads`,
rejectUnauthorized: false,
body: base64str
}, function(err,response,body) {
      console.log(body);
      });

До сих пор у меня не возникало проблем, поскольку ответ (body) является токеном загрузки, и я его получил. теперь, когда я хочу перейти к шагу # 2, чтобы запросить mediaItems: batchCreate, вот код:

let reqObject = {
    newMediaItems: [
      {
        description: "Test Image Uploading",
        simpleMediaItem: {
        uploadToken: body //Body is the upload token received from prev request
        }
      }
    ]
  };
let reqObjectString = JSON.stringify(reqObject);

  request({
    method: 'post',
    headers: {
    'content-type' : 'application/json',
    'Authorization': `Bearer ${userToken}`,
    },
    url: `https://photoslibrary.googleapis.com/v1/mediaItems:batchCreate`,
    rejectUnauthorized: false,
    body: reqObjectString
  }, function(err,response,result) {
      console.log(result);
});

Ожидаемый результат - предполагается, что это успешная загрузка мультимедиа, но вместо этого я всегда получаю этот ответ:

{
  "newMediaItemResults": [
    {
      "uploadToken": "CAISmQMASsyg4MwSgB2y46/QI2yAAfw/uSeHZaiwGaskaT9J3SEvOtBg4bkOb9Fd0WMhE5OML8aMJMGZWNyC3Di/woTjLGD/VJMtKBk7bg1ZyK5CA+92vk0mjUWVR2LQhhTkEs02aHRr6EkCER3rxk3AqkhC+bxTIViLerUeoKigdlqozrEJXyCLM5U+Eqjdidi0e0hEFeLqs8Yz0V8YpyWQnN+zZUp/+R4pVT9fPXUOyNlsTj5OcMLrtC3Z/W9YnKhQA0O8io8LtmMBJTf04v3YPEtoNvJTd+k5Ux7qWQYJCS60V1R+hPl76jlryos3gnVaaCxHGH/TIMmtwo2zDH+vXTyktMhr82hdMON3Mm2PCfSbJawCLuHSNND9vojO11FEs7LVXAfY1UDDzVXwv4VV8tG9F3tQVI8/4YlkR+KJUjaX6/E4ZFWx67E+swqh16HN1RXXU211eCl36mPxsX35IGPEwvhpZ89LKfk+NU1fVuHB+pNLMNQ+mZOkKs0v6VLcN+nyMpOwjAstg4QUSJdCP+virY1a2uGKwYJh",      
        "status": {
        "code": 3,
        "message": "Failed: There was an error while trying to create this media item."
      }

Может кто-нибудь помочь, заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...