バイナリーデータをPOSTする方法(gasから外部サイトへ)

<やりたかった事>

Google Apps Scritpt (gas) から他のサイトにバイナリデータを送る

 

3日間悩んで解決したので、残しておく。

 

バイナリデータをPOSTする際に、そのまま送ると微妙なので、基本はbase64という形式に変換した後にPOSTするのが良い。

× var img = Utilities.base64Encode(meta);

これだと変換がうまくいかなくてできなかったので

下のようにするとうまくいった。

 

<解決策>

var img = Utilities.base64Encode(meta.getBlob().getBytes());

 

これで、外部のAPIにバイナリデータを自由におくれます!

 

 

==============================

★ meta ⇒にバイナリデータを入れる。

function IMG_POST(meta){
var img = Utilities.base64Encode(meta.getBlob().getBytes());
var url = '送信先';
x=UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json',
},
'method': 'post',
'payload': JSON.stringify({
'img': img,
}),
});
}