feb19.jp

Nobuhiro Takahashi
Designer / Engineer

AS3 で bit.ly API を使う

AS3 で bit.ly API を使う

短縮 URL 使いたかったので bit.ly 使う事にしたのです。bit.ly は、もの凄い長い URL を短い URL に変換してくれるサービスです。Twitter / Facebook / mixi / ameba とかのつぶやき、マイクロブログへの投稿時にちょっと URL をくっ付けさせてもらうときに便利。

あとわざと URL を隠蔽したいときとか。悪い事は駄目ですよ。

bit.ly 以外でも同じようなサービスは一杯有りますが、今のところここが最強かな。Google や Facebook、Twitter も独自で始めつつ有るみたいですが今のとこ API 無いので開発者は使えません。

--

さてそういうわけで bit.ly API ですが、最近はデコンパイルとかされるんじゃないかとかいうので、セキュリティを考えるとサーバープログラムで API キーは隠蔽したほうがいい気がしたので最終的に PHP で仲介しましたが、一応 Flash から直接 API 叩けたのでメモ。

API キーとかいうのが必要なので開発者として登録します。ここでアカウントとってここで API キーをチェックします。
アカウントを取ると、自分が作った短縮 URL がどれだけクリックされたかとかのレポートを見ることができるので、開発者でなくても取っておくと面白いかも。

URL を短縮するには shorten を使用します。

JSON.decode 使うので、as3corelib を使います。
※画面右の Download から Download.zip で展開して出来た src フォルダの中身 (com フォルダ) を作成する fla と同じディレクトリに置く。
JSON について、詳しくこちらで以前解説しました

以下ソースです。

import com.adobe.serialization.json.JSON;
 
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLVariables;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
 
var urlVariables:URLVariables = new URLVariables();
urlVariables["login"] = 自分のログイン ID;
urlVariables["apiKey"] = 発行された API キー;
urlVariables["longUrl"] = "http://hogehogeho-ke-gehogehogeho";
urlVariables["format"] = "json";
 
var urlRequest:URLRequest = new URLRequest();
urlRequest.data = urlVariables;
urlRequest.method = URLRequestMethod.GET;
urlRequest.url = "http://api.bit.ly/v3/shorten";
 
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, completeHandler);
urlLoader.load(urlRequest);
 
var shortUrl:String;
function completeHandler(event:Event):void
{
     var data:String = urlLoader.data;
     trace(data);
     var json:Object = JSON.decode(data);
     trace(json["data"]["url"]);
}

出力例:

{ "status_code": 200, "status_txt": "OK", "data": { "long_url": "http:\/\/hogehogeho-ke-gehogehogeho", "url": "http:\/\/bit.ly\/gA1aNc", "hash": "gA1aNc", "global_hash": "ifJ1Wn", "new_hash": 1 } }
http:\/\/bit.ly\/gA1aNc

XML と同じで普通に URLLoader で load するだけです。JSON で分解しておしまい。

参考:
bit.ly API 一覧

Tweet Share Bookmark

Navigation

prev: 次世代 Flash Builder (Burrito) プレビュー版を触ってみた
next: 日本語で書かれている技術書を扱っている電子書籍書店一覧

Recently Entries