GAS 開発案件にて、短縮 URL の元を知る要件が出てきたのでメモにします。
短縮 URL は、長い URL をコンパクトにします。10~20桁程度のランダムな ID を引数にして問い合わせ、それを短縮 URL サーバーで解釈し、対応する URL にリダイレクトする仕組みです。
https://bit.ly/3WgfF0c
↓
https://fujitatakesh.net
この短縮 URL からリダイレクト先を取得する方法については、元の URL にアクセスする際に、リダイレクトフォローをしないようにオプションを追加します。followRedirects: false を指定して fetch を行います。
function getUnshortenedURL(_url) {
console.log(UrlFetchApp.fetch(_url, {
followRedirects: false
}).getHeaders().Location);
}
リダイレクトの応答の中に「Location」というヘッダがついてきます。これがリダイレクト先の指定です。今回は1文で表現していますが、応答から全ヘッダを取得し、そのうちの Location ヘッダを応答しています。