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」関数と組み合わせて使うこともできます。
ただし、ISURL関数の仕様上、日本語URLの判定は正しく行えないようです。
(getShortUrl関数自体は日本語URLに対応しています。)
2014/4/1 追記:
拡張サービスを使うことによって、下記のようにコードを短くすることもできます。
function getShortUrl(url){ return UrlShortener.Url.insert({longUrl:url}).id }
この記事通りコピペして実行したのですが、エラーが出てしまいます。ご確認頂ければ幸いです。
> ちゃんさん
当ブログ管理人のきぬあさです。
確認したところ、APIの呼び出しにAPIキーが必要になっていたため、エラーが発生しているようでした。
記事を追加しましたので、ご確認いただければと思います。