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関連

    【2018年9月版】Google API ConsoleでクライアントIDとクライアントシークレット…

    GoogleのAPIを呼び出すにあたり、クライアントIDとクライアント…

  2. Google関連

    Google Apps Script 活用トーク #6に参加しました – #GAS活

    5月29日(金)に開催された「Google Apps Script 活…

  3. Word

    GoogleとYahoo!で同時に翻訳するWordマクロ

    「Google翻訳で文字列を翻訳するマクロ」と「Yahoo!翻訳で文字…

  4. Office関連

    OneNote + Google Apps Scriptで定期的にWebサイトのキャプチャーを撮る方…

    「“OneNote”がアップデート、URLをメールで送るだけでスクリー…

  5. Office関連

    Gmail APIを使ってメール送信するVBAマクロ(3)

    前回、前々回とGmail APIを扱ってきましたが、今回は前々回の記事…

  6. Google関連

    Google Apps Script 活用ミートアップ #4に参加しました – #GAS…

    5月20日(月)にNagatacho GRiDで開催された「【エンジニ…

コメント

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

    • > ちゃんさん

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP