Google関連

[Google Apps Script]URL Shortener APIを使って短縮URLを取得する自作関数

2015/7/14 追記:

いつの間にかAPIの呼び出しにAPIキーが必要になっていました(ページ下部「拡張サービス」版は不要です)。
APIキーの取得方法は「goo.glで短縮URLを取得するVBAマクロ」をご参照ください。

function getShortUrl(url){
    var key = "(APIキー)";
    var api_url = "https://www.googleapis.com/urlshortener/v1/url?key=" + key;
    var payload = '{"longUrl":"' + url + '"}';
    var options = {
        "contentType":"application/json",
        "method":"post",
        "payload":payload
    };
    var res = UrlFetchApp.fetch(api_url, options);
    return JSON.parse(res.getContentText()).id;
}

goo.glで短縮URLを取得する(Office VBA)」でも紹介していますが、GoogleのURL Shortener APIを使うと、短縮URLを取得することができます。
今回はこのAPIを利用して、指定したURLの短縮URLを取得する自作関数を紹介します。

function getShortUrl(url){
    var api_url = "https://www.googleapis.com/urlshortener/v1/url";
    var payload = '{"longUrl":"' + url + '"}';
    var options = {
        "contentType":"application/json",
        "method":"post",
        "payload":payload
    };
    var res = UrlFetchApp.fetch(api_url, options);
    return JSON.parse(res.getContentText()).id;
}

下図のようにシート上から、新しい Google スプレッドシートで使えるようになった「ISURL」関数と組み合わせて使うこともできます。

GoogleAppsScript_10_10

ただし、ISURL関数の仕様上、日本語URLの判定は正しく行えないようです。
(getShortUrl関数自体は日本語URLに対応しています。)

GoogleAppsScript_10_11

2014/4/1 追記:
拡張サービスを使うことによって、下記のようにコードを短くすることもできます。

function getShortUrl(url){
    return UrlShortener.Url.insert({longUrl:url}).id
}

関連記事

  1. Google関連

    「Save to Drive」ボタンを試してみました。

    下記Webページでも紹介されていますが、Webサイト上のファイルを直接…

  2. Office関連

    Google TTSで文字列を読み上げるExcelアドイン

    前回の記事で書いたGoogle TTSで文字列を読み上げるマクロ(言語…

  3. Google関連

    [Google Apps Script]Google アナリティクスのデータを取得する。

    拡張サービスの「Google Analytics API」を使って、G…

  4. Google関連

    [Google Apps Script]スプレッドシート上にウィンドウを表示する(2)

    Google Apps Scriptでスプレッドシート上にウィンド…

  5. Google関連

    [Google Apps Script]メニューの追加と確認ダイアログの表示

    Google Apps Scriptで新規メニューを追加し、メニューか…

  6. Office関連

    Google翻訳で文字列を翻訳するマクロ

    ※ 2016/2 時点では下記の方法はもう使用できなくなっています。V…

コメント

  1. この記事通りコピペして実行したのですが、エラーが出てしまいます。ご確認頂ければ幸いです。

    • > ちゃんさん

      当ブログ管理人のきぬあさです。
      確認したところ、APIの呼び出しにAPIキーが必要になっていたため、エラーが発生しているようでした。
      記事を追加しましたので、ご確認いただければと思います。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP