GASでBitlyのAPIを使用して、短縮URLを作成する

短縮URLを作成する際に便利なサービスとして、Bitlyがあります。

短縮URLを作成するのに、Bitlyの画面から手動で作成しても良いのですが、BitlyにはAPIが用意されているので、スプレッドシートに記載したURLから短縮URLを作成するというものを作ってみます。

使用するスプレッドシート

短縮URLを使う例として、Googleアナリティクスのキャンペーンパラメータを挙げます。
utm_sourceなどのパラメータを付ける場合、URLが長くなってしまうので、以下のようなスプレッドシートを使用して、キャンペーンパラメータが付いたURLを短縮してみます。

使用するスプレッドシート

BitlyでAPIを使う設定

BitlyでAPIを使用する場合は、トークンを作成する必要があります。

Bitlyで右上のアカウントのところから、以下のメニューを開き、「Profile Settings」をクリックします。

Bitlyのメニュー

以下のメニューが開くので、「Generic Access Token」をクリックします。

BitlyのProfile Settingsメニュー

アクセストークンを作成する画面になるので、アカウントのパスワードを入力して、「GENERATE TOKEN」ボタンをクリックします。

アクセストークンを作成する

アクセストークンを作成すると、以下のように画面に表示され、「COPY」ボタンをクリックすることでコピーできます。

アクセストークンの生成が完了

GASでBitlyの短縮URLを作成するコード

GASのコードは以下のようになります。

function makeShortUrl() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("bitly");
  var parameters = sheet.getRange("A2:G").getValues();
  
  for (var index = 0; index < parameters.length; index++) {
    var parameter = parameters[index];
    if (parameter[0] == "") {
      break;
    }
    
    // 既に短縮URLが作成済みのものは除く
    if (parameter[6] != "") {
      continue;
    }
    
    var shortUrl = shortenLink(parameter[5]);
    sheet.getRange(index+2, 7).setValue(shortUrl);
  }
}

function shortenLink(targetUrl) {
  var url = "https://api-ssl.bitly.com/v4/shorten";
  var token = "[ここにBitlyのアクセストークンを入れる]";
  
  var payload = {
    "long_url" : targetUrl,
  };
  
  var params = {
    "method" : "post",
    "contentType" : "application/json",
    "headers": {Authorization: "Bearer " + token},
    "payload" : JSON.stringify(payload)
  };
  
  var ret = JSON.parse(UrlFetchApp.fetch(url, params));
  return ret["link"];
}

「makeShortUrl」関数を実行することで、短縮URLを作成できます。

3行目でスプレッドシートに記載されている内容を取得し、5行目からループします。

12行目で判定を入れていて、既に短縮URLを作成済みの行は除きます。
16行目で短縮URLを作成する自作関数を呼び出し、17行目で作成した短縮URLをG列に設定します。

短縮URLを作成する関数(shortenLink)は、対象のURLを引数で受け取ります。
23行目に、上記で作成したBitlyのアクセストークンを記述します。

36行目で対象のURLにpostすることで、作成された短縮URLが返却されます。

実行後のスプレッドシート

上記の処理を実行すると、結果は以下のようになります。
G列に作成された短縮URLが設定されました。

Bitlyの画面を見ると、以下のように短縮URLが作成できているのが確認できます。

BitlyのAPIで短縮URL作成