
実現したいこと
・Twitterの自動投稿システムを作りたい
・画像がセルに用意されているときは画像投稿
・画像が用意されていない場合は投稿文だけ投稿
前提
画像無しの場合このようなエラーが出されます
発生している問題・エラーメッセージ
なし
Exception: Cannot retrieve the next object: iterator has reached the end.
該当のソースコード
function tweet() { const twitter = getTwitterService() if(twitter.hasAccess()) { const endpoint1 = "https://upload.twitter.com/1.1/media/upload.json" const endpoint2 = "https://api.twitter.com/2/tweets"; // シートの指定 var sheet = SpreadsheetApp.getActiveSheet(); // 投稿内容の取得 var img = sheet.getRange(2, 1).getValue(); var text = sheet.getRange(2, 3).getValue(); var file_name = img; //画像ファイル名を設定 if(file_name != ""){ var file_temp = DriveApp.getFilesByName(file_name).next();//GoogleDriveから画像を取得 } else { file_temp = ""; } // 画像をアップロードできる様に(ここから) var resp = file_temp.getBlob(); var resp_64 = Utilities.base64Encode(resp.getBytes());//Blobを経由してBase64に変換 var img_option = { 'method':"POST", 'payload':{'media_data':resp_64} }; var image_repsponse = twitter.fetch(endpoint1,img_option); var image_result = JSON.parse(image_repsponse.getContentText()); // 画像をアップロードできる様に(ここまで) // テキスト関連 var twitterText = text; //ツイートテキストを設定 var mediainfo = { media_ids: [image_result['media_id_string']] } var payload = { text: twitterText, media: mediainfo } var response = twitter.fetch(endpoint2, { method: "post", muteHttpExceptions: true, payload: JSON.stringify(payload), contentType: "application/json" }); var result = JSON.parse(response.getContentText()); console.log(image_result + twitterText); } else { Logger.log(service.getLastError()) } sheet.deleteRow(2); }
###試したこと
エラーの意味も何故出るかもわかっており、条件分岐の中にアップロードなどの処理を入れたりしてみたのですがその場合だとエラーは出ませんがなぜか投稿もされません
var resp = file_temp.getBlob(); var resp_64 = Utilities.base64Encode(resp.getBytes());//Blobを経由してBase64に変換 var img_option = { 'method':"POST", 'payload':{'media_data':resp_64} }; var image_repsponse = twitter.fetch(endpoint1,img_option); var image_result = JSON.parse(image_repsponse.getContentText());
を条件分岐の中に入れてみたりしました

すみません
試したことは前提に書いておりました
そのようなエラーが出そうなのは、
var file_temp = DriveApp.getFilesByName(file_name).next();
のところですが、
if (file_name != "") {
のときなので、
可能性としてはA2セルが消去されておらず、スペースが入力されている場合
などでしょうか。

コメントありがとうございます
試しましたが同じ結果でした
エラーにソースの行数が併せて表示されていませんか?

Exception: Cannot retrieve the next object: iterator has reached the end.
tweet @ 自動投稿.gs:24
となっております
意味もなぜ出るかもわかってはいます
いろんな部分を条件分岐に入れているうちにわけがわからなくなってしまって・・・。
