はじめに
先日このような記事を書かせていただきました。
こちらのコードでも動作するのですが、保存したときにuntitled.jpg
みたく名前がちょっとアレになっていました。
なので今回は名前をつけようと思います。
といっても前回のコードに少しだけ足すだけなのでサクッといきましょう。
名前を付ける
var ACCESS_TOKEN = 'LINE Developer画面に表示されているアクセストークン'; function doPost(e) { var json = JSON.parse(e.postData.contents); if (json.event[0].message.type !== 'image') return; var url = 'https://api.line.me/v2/bot/message/' + json.events[0].message.id + '/content/'; var image = getImage(url); // ここから変更します // 画像の名前を今日の日本時間にする var today = new Date(Date.now() + ((new Date().getTimezoneOffset() + (9 * 60)) * 60 * 1000)); var fileBlob = response.getBlob().setName(today); var dir = DriveApp.getFileById("画像を中に入れたいフォルダのID"); dir.createFile(fileBlob); // ここまで変更しました } function getImage(url) { return UrlFetchApp.fetch(url, { "method": "get", 'headers': { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer ' + ACCESS_TOKEN } }); }
createFile
メソッドの引数の型はGoogleAppScript.URL_Fetch.HttpResponse
で前回やってできていましたが、GoogleAppScript.Base.Blob
でもいけるみたいですね。
というか後者の方が正しいルートのような気がします。
さいごに
日本時間の取得するところで変な長いコードにしていますが、一応これには理由があります。
もし気になるかたがいましたら、是非こちらの記事を見てみてください!
www.hanachiru-blog.com