バイナリーデータを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,
}),
});
}