- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
前回までで、定型文をランダムに投稿するbotと、なんの記念日か投稿するbotを作成しました。今回はそれをさらにアップデートして、画像を投稿できるようにしていきます。
function postTweetMedia(postMessage,fileName){
//画像の取得
var file_temp = DriveApp.getFilesByName(fileName).next();//GoogleDriveから画像を取得
var resp = file_temp.getBlob();
var img_64 = Utilities.base64Encode(resp.getBytes());
var img_option = {
'method' : "POST",
'payload': {
'media_data': img_64
}
};
var image_upload = JSON.parse(service.fetch(endPointMedia, img_option));
var sendoption = {
'status' : postMessage,
'media_ids': image_upload['media_id_string']
};
service.fetch(endPointStatus, {method: 'post', payload: sendoption});
console.log("画像付きでTweetしました。by postTweetMedia");
}
順番に解説します。
1行目で、関数を定義します。postMessageに投稿する文章を、fileNameに投稿する画像の名前を読み込みます。今回はGoogleDriveのマイドライブに入っている画像を引っ張ってきますのでurlではなく名前のみで大丈夫です。(拡張子は必要です。)
4~6行目で、まず画像を読み込んできます。画像の読み込み方は色々あるのですが、ここでは一番簡単(と思われる)な、GoogleDriveに保存された画像を読み込んでくる手法にしています。
fileNameで指定された画像をgoogleDriveから読み込んできて、img_64に格納します。
8~13行目で、img_optionに画像をpostメソッドで格納しています。
15行目で、画像を読み込んだJSONオブジェクトを変換しています。ここで、JSON.parseメソッドとは、JSON形式で書かれた文字列をJavaScriptのJSONオブジェクトに変換するメソッドです。
17~20行目で、投稿する内容を作成しています。ここに、tweetする文章と画像をそれぞれ格納しています。
22行目で、twitterのサービスに投稿しています。
23行目は完了した際の表示だけです。なくても大丈夫な行です。
コメント
コメントを投稿