2016/4/8 追記:
Microsoft Windows 10 Insider Preview 10.0.14316 ビルド 14316(Microsoft Edge 37.14316.1000.0)にアップしたらコードが動かなくなったので書き直しました。
・Microsoft Edgeの拡張機能を使って短縮URLを取得してみる(2)
//www.ka-net.org/blog/?p=6887
「Microsoft Edgeの拡張機能を色々試してみた」で書いた通り、今の時点でもMicrosoft Edgeの拡張機能(Microsoft Edge Extensions)で多少のことはできるようだったので、今回は実用的な機能を実装してみました。
短縮URLを取得するボタン
Twitterで長いURLを投稿する際に役立つのがURL短縮サービスです。
特にGoogleが提供している「Google URL Shortener」はAPIも提供されているので、プログラムから簡単に短縮URLを取得することができます。
今回はこのAPIを使って、Edgeの拡張機能から表示中のWebページの短縮URLを取得してみたいと思います。
※ Edge用拡張機能のテスト方法はこちらの記事をご参照ください。
manifest.json
{
"name": "短縮URL取得",
"description": "Google URL Shortener APIを使って短縮URLを取得します。",
"version": "1.0.0.0",
"locale": "ja",
"default_locale": "ja",
"icons": {
"24": "img/icon_24.png",
"128": "img/icon_128.png"
},
"background": {
"page": "background.html"
},
"browser_action": {
"title": "短縮URL",
"icon": {
"20": "img/icon_20.png",
"25": "img/icon_25.png",
"30": "img/icon_30.png",
"40": "img/icon_40.png"
}
}
}
permissionsの設定が必要かと思ったのですが、無くても動作したのでとりあえず無しにしています。
background.html
<!DOCTYPE html> <html lang="ja"> <head> <title>短縮URL取得</title> <meta charset="utf-8"> <script src="./js/background.js"></script> </head> </html>
background.js
(function() {
typeof msBrowser != "undefined" ? chrome = msBrowser : typeof browser != "undefined" ? chrome = browser : chrome = null;
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {
"file" : "./js/ext.js"
});
});
})()
今回はボタンクリック時にスクリプトを実行したいので、Tabs APIのexecuteScriptメソッドを使って、外部ファイルを呼び出します。
ext.js
var key = "(Google API Consoleで取得したAPIキー)";
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", function(event) {
var obj = JSON.parse(this.responseText);
typeof obj.error != "undefined" ? alert("Error") : window.prompt("Short URL:", obj.id);
});
xhr.addEventListener("error", function(event) {
alert("Error");
});
xhr.open("POST", "https://www.googleapis.com/urlshortener/v1/url?key=" + key);
xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
xhr.send(JSON.stringify({"longUrl":location.href}));
APIキーの取得方法は「Goo.glで短縮URLを取得するVBAマクロ」をご参照ください。
(今のGoogle API Consoleだとちょっと取得方法が異なりますが、大体は同じです。)
動作画面

上図の通り、拡張機能を読み込んでボタンをクリックすると、表示中のWebページの短縮URLがprompt表示されます。
小さな機能ですが、こうして自分で機能を拡張できるのはとても便利です。
Microsoft Edgeはまだ新しいブラウザーで、足りない機能もたくさんあるので、この拡張機能(Microsoft Edge Extensions)には今後も期待しています。



















この記事へのコメントはありません。