将 html canvas 二进制数据发送到 Google 照片 API

Sending html canvas binary data to Google Photos API

我正在尝试将图像从 canvas 上传到 Google 照片:

第 1 步:Upload binary image data

POST https://photoslibrary.googleapis.com/v1/uploads
Content-type: application/octet-stream
Authorization: Bearer OAuth2_TOKEN
X-Goog-Upload-File-Name: FILENAME
MEDIA_BINARY_DATA

我的MEDIA_BINARY_DATA

function get_binary_data_from_canvas(){
  var canvas = document.getElementById("canvas-upload");
  return canvas.toDataURL(); // <- my binary data
}

我得到一个 uploadToken

第 2 步:Create Media Item

我使用在上一步中获得的 uploadToken 发送了一个有效请求。

在我得到的回复中:

 "NOT_IMAGE: There was an error while trying to create this media item"

那么从 HTML canvas 生成二进制数据的正确方法是什么?

canvas.toBlob 可能会对您有所帮助。

https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob