マガジンのカバー画像

開発裏話

30
マンガポスト日本版の note 公式アカウントです。 Twitter で漫画(まんが)・コミックの新刊情報を毎日配信中!
運営しているクリエイター

#テクノロジー

GAS|HTTP ステータスコードを取得する|getResponseCode|fetch|UrlFetchApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 ツイートやその他外部 API 使用などで URL フェッチする際、たまにエラー(例外)が発生して、スクリプトが停止してしまっていました。以下の通りです。 try…catch 構文で、簡単にスクリプトの停止は回避できましたが、HTTP ステータスコードが「522」や「404」などであった場合、エラー(例外)を発生させずに、

GAS|スタックトレースを出力する|Exception|fetch|UrlFetchApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 ツイートやその他外部 API 使用などで URL フェッチする際、たまにエラー(例外)が発生して、スクリプトが停止してしまっていました。以下の通りです。 try…catch 構文でハンドリングした「Exception」オブジェクトから、スタックトレースを出力すると、見やすくて便利です。 例えば、以下のように実装します。

GAS|Exception|fetch|UrlFetchApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 ツイートやその他外部 API 使用などで URL フェッチする際、たまにエラーが発生して、スクリプトが停止してしまっていました。 // Makes a request to fetch a URL.var response = UrlFetchApp.fetch('https://www.mangapost.jp/');

GAS|ライブラリを利用する|リソース|Javascript|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 その一部の処理は、GAS の各プロジェクトで共有できるように、「ライブラリ」として作成しています。 GAS では、作成したプロジェクトを「実行可能 API として導入」するだけで、そのプロジェクトは「ライブラリ」になります。そうして作成した「ライブラリ」を自分の他プロジェクトで利用することもできますし、見知らぬ誰かが作成

GAS|JSDoc コメントを書く|Javascript|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 一部の処理は、GAS の各プロジェクトで共有できるように、「ライブラリ」として作成しています。 特に、GAS で「ライブラリ」を作成するのであれば、JSDoc コメントを正しく書くべきです。以下のガイドに記載の通り、ライブラリの各ファンクションを正しくオートコンプリート(自動補完)させる為、自動生成ドキュメントを正しく表

GAS|短時間に作成したカレンダーまたはカレンダーの予定の数が多すぎます。しばらくしてからもう一度お試しください。|createEvent|Calendar|CalendarApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 以下の通り、Google カレンダーへ「コミックス販売日情報」をイベントとして自動登録しているのですが、その実装の過程で、「短時間に作成したカレンダーまたはカレンダーの予定の数が多すぎます。しばらくしてからもう一度お試しください。」というエラーが発生してしまいました。 GAS では、Google カレンダーの使用について

GAS|指定した時刻にトリガーを設定する(誤差 ±15 分)|timeBased|newTrigger|ScriptApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 毎日決められた時分秒に実行しているのではなく、その日の情報量の多さに応じて自動計算し、トリガーを任意時刻に設定しています。以下はその一例です。 // 13:57var date = new Date();date.setHours(13);date.setMinutes(57);// creates the trigge

GAS|ファンクション名からトリガーを削除する|deleteTrigger|getHandlerFunction|Trigger|getProjectTriggers|ScriptApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 毎日決められた時分秒に実行しているのではなく、その日の情報量の多さに応じて自動計算し、トリガーを任意に設定しています。 GAS のトリガーは、実行したら自動的に削除されるものではありません。ですので、明示的に削除しなければ、実行済みのトリガーがプロジェクト内に溜まり続けてしまいます。 /** * Removes the

GAS|Google カレンダーを連携した自動化の活用事例|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 この「コミックス販売日情報」は、以下の通り、スプレッドシートで作ったものです。 このスプレッドシート「コミックス販売日情報」を自動で定期的に参照し、Google カレンダーへ「コミックス販売日情報」をイベントとして自動登録しています。以下は登録後の PC 版の画面です。 「コミックス販売日情報」には全ての情報が記載され

GAS|スプレッドシートを連携した自動化の活用事例|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 この「コミックス販売日情報」は、スプレッドシートで作ったものです。 一日に一回、指定した時刻に、月毎「コミックス販売日情報」をスプレッドシートに自動生成しています。 ・指定した時刻に自動実行(トリガー機能) ・スプレッドシートの自動生成 ・スプレッドシートの自動編集 ・スプレッドシートの自動参照 ・スプレッドシートの自

GAS|名前と MIME type(マイムタイプ)からファイルを検索する|File|getFilesByName|Folder|DriveApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 Google ドライブ内からファイルを検索する場合、「DriveApp.searchFiles」というメソッドが GAS には存在しますが、現在、こちらが正常に機能していません。取得した「FileIterator」の「FileIterator.hasNext()」を呼び出すと、必ず「引数が無効」というエラーが発生します。

GAS|ドキュメントを保存する前に適用した変更が多すぎます。|setText|Body|DocumentApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 「500KB」のテキストを、以下の方法で「Google ドキュメント」に保存しようとしたら、「ドキュメントを保存する前に適用した変更が多すぎます。」というエラーが発生しました。 var document = DocumentApp.create(name);document.getBody().setText(text)

GAS|スプレッドシート(ファイル)を削除する|removeFile|Folder|getFolderById|DriveApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 この「コミックス販売日情報」は、スプレッドシートで作ったものです。 Google ドライブ内に保存しているスプレッドシート(ファイル)を削除するには、以下のようにします。 /** * Removes the given spreadsheet from the current folder. * This method

GAS|スプレッドシート(ファイル)をコピーする|makeCopy|File|getFileById|DriveApp|Google Apps Script|開発裏話

「マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。 この「コミックス販売日情報」は、スプレッドシートで作ったものです。 Google ドライブ内に保存しているスプレッドシート(ファイル)の「コピー」を作成するには、以下のようにします。 /** * Creates a copy of the spreadsheet (file) and names it with the