Google Apps Script(GAS)でTOTPを生成するには、SHA1を実装している外部ライブラリを使うのが良いだろう。
ウェブアプリとしてJSON形式で表示させるところまで実装したコード
function myFunction() { const secret = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; const cdnjs = "https://cdnjs.cloudflare.com/ajax/libs/otpauth/9.1.1/otpauth.umd.min.js"; eval(UrlFetchApp.fetch(cdnjs).getContentText()); const now = new Date(); const code = new OTPAuth.TOTP({ secret, algorithm: "SHA1", digits: 6, period: 30, }).generate(); Logger.log(code); let objectArray = {}; objectArray["code"] = code; objectArray["date"] = now; return objectArray; } function doGet() { const json = JSON.stringify(myFunction()); let output = ContentService.createTextOutput(); output.setMimeType(ContentService.MimeType.JSON); output.setContent(json); return output; }
参照
メモ: TOTPは時間ベースのワンタイムパスワード OTP