web-dev-qa-db-ja.com

短縮URLを取得するGoogleスプレッドシート関数(Bit.lyまたはgoo.glなどから)

Google Analyticsリンクを作成するGoogleスプレッドシートがあります。これらのリンクを短くしたいと思います。 Bit.lyの例 を試しましたが、その例でさえ機能しません。

これどうやってするの?

8
Clay Nichols

この小さなコードにより、Google Apps ScriptとURL Shortener APIを使用して、短縮URLを作成できます。

前提条件

スクリプトエディターのリソース(Tools> Script editor)でAdvanced Google Servicesを選択し、UrlShortenerをアクティブにします。 enter image description here
次に、Google Developers Consoleにアクセスして、APIのURLを選択します。 enter image description here
APIを有効にして、コードをスクリプトエディターに貼り付けます。バグボタンを押してスクリプトを認証します

コード

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu("Shorten")
    .addItem("Go !!","rangeShort")
    .addToUi()  
}

function rangeShort() {
  var range = SpreadsheetApp.getActiveRange(), data = range.getValues();
  var output = [];
  for(var i = 0, iLen = data.length; i < iLen; i++) {
    var url = UrlShortener.Url.insert({longUrl: data[i][0]});
    output.Push([url.id]);
  }
  range.offset(0,1).setValues(output);
}

説明した

onOpen()関数は、名前Shortenを持つ選択可能なメニュー項目を作成します。ファイルを開くたびに、このメニュー項目が追加されます(スクリプトエディターを使用している場合は、ドロップダウンメニューから機能を選択し、再生ボタンを押します。これにより、特定の機能が実行され、項目が追加されますメニュー)。

メニューが作成されると、メニュー項目Go !!が表示されます。短縮するセルまたは範囲を選択すると、スクリプトによって短縮URLが作成され、シートに追加されます。

スクリーンショット

before
enter image description here

after
enter image description here

注意

コードは、短縮するセルまたは範囲を選択すると、選択したセル/範囲の右側に結果が追加されることを前提としています(OFFSET(0,1))。
既存のURLを単に上書きする場合は、コードを次のように変更します:(OFFSET(0,0))。

サンプルファイルを作成しました:短縮URLの作成

参照資料

  1. rl-shortener
  2. offset(Integer、Integer)
  3. onOpen()
12

TinyURLには、短縮リンク付きのテキストファイルを吐き出すAPIがあります。 IMPORT DATA機能を使用する場合、そのページからテキストを取得できます。また、CONCATENATE関数を使用してURLを一緒にストリング化する必要があります。

Tinyurl APIの構造はhttp://tinyurl.com/api-create.php?url=YOURLINKHEREです

そのリンクからのインポートデータは明らかに有効なリンクに移動しませんが、http://tinyurl.com/oegcbsxを入力します。

CONCATENATEは、テキストをその場所に配置します。

A1とhttp://tinyurl.com/api-create.php?url=を連結すると、探している正しいURLが生成されます。インポートデータは、新しい短いURLを取得します!

ここに式があります!長いURLを配置する場所をB2に置き換えます

=IMPORTDATA(CONCATENATE("http://tinyurl.com/api-create.php?url=" & B2))
5
Jared

Bitlyリンクについて http://dev.bitly.com/spreadsheets.html

A1セルを使用するURLに置き換える必要があります。

また、クリック数を取得する方法を提供することも非常に便利です。

1
Dave