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. この記事通りコピペして実行したのですが、エラーが出てしまいます。ご確認頂ければ幸いです。

    • > ちゃんさん

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP