LoginSignup
8
7

More than 5 years have passed since last update.

AS3 で Qiita API を利用するライブラリ作った

Posted at

QiitaAPILibForAS3

Qiita API を AS3 で利用するためのライブラリです。

Qiita API については下記を御覧ください。

Qiita API document

Flash だけでなく AIR でも利用できるので、iOS/Android アプリ開発にも利用できます。

対応API

2012/10/12 時点で、下記のAPIに対応しています。

+ 残りリクエスト可能数とRate Limit取得
+ token取得
+ 特定ユーザーの情報取得
+ 特定ユーザーの投稿取得
+ 特定ユーザーのストックした投稿取得
+ 特定ユーザーのフォローしているユーザー取得
+ 特定ユーザーのフォローしているタグ取得
+ 特定タグの投稿取得
+ タグ一覧取得
+ 検索結果取得
+ 新着投稿の取得
+ 自分のストックした投稿の取得
+ 投稿の実行
+ 投稿の更新
+ 投稿の削除
+ 特定の投稿取得
+ 投稿のストック
+ 投稿のストック解除

ライセンス

Copyright © 2012 Takefumi Katsuren

Distributed under the MIT License.

使い方

Qiita クラスは各APIをリクエストすると
対応した APIEvent(成功時) または APIErrorEvent() を発行します。
それぞれの Event に必要なデータが格納されているので、
そのデータを利用します。

下記は認証の例です。パラメタの詳細などは各メソッドのコメントを参照ください。

public var qiita:Qiita;

public function init():void
{
  qiita = new Qiita();
  qiita.addEventListener(APIEvent.AUTH_COMPLETE, authCompleteHandler);
  qiita.addEventListener(APIErrorEvent.AUTH_FAILED, authFailedHandler);
}

public function auth(uid:String, pwd:String):void
{
  trace("auth start");
  qiita.auth(uid, pwd);
}

public function authCompleteHandler(event:APIEvent):void
{
  // リクエストに成功した場合はここで処理を行う
  var data:AuthData = event.data as AuthData;
  trace("auth complete!");
  trace("token :", data.token);
  trace("raw response :", data.response);
}

public function authFailedHandler(event:APIErrorEvent):void
{
  // なにかエラーが発生したらここで処理を行う
  trace("auth failed.");
  trace("reason :", event.text);
}

下記はユーザーの投稿を取得し、取得したすべての記事をストックする例です。

※デフォルトでは20件しか取得しないので、1000件投稿しているユーザーの場合はページャーをいじる必要があります

public var qiita:Qiita;
public var token:String = "some_dummy_token";

public function init():void
{
    qiita = new Qiita();

    // ユーザーの投稿取得用
    qiita.addEventListener(APIEvent.GET_USER_ITEM_LIST_COMPLETE, getUserItemListCompleteHandler);
    qiita.addEventListener(APIErrorEvent.GET_USER_ITEM_LIST_FALIED, getUserItemListFailedHandler);

    // ストックの確認用
    qiita.addEventListener(APIEvent.STOCK_COMPLETE, stockCompleteHandler);
    qiita.addEventListener(APIEvent.STOCK_FAILED, stockFailedHandler);
}

public function getUserItemList(uid:String="katsuren"):void
{
    // この場合は新着から100件の記事を取得します.
    // 100件以上の記事がある場合は、一度の取得上限が100件のため、
    // オフセットを指定して取得する必要があります.
    // 例えば、右のようにします qiita.getUserItemList(uid, token, 100, 3);
    qiita.getUserItemList(uid, token, 100);
}

public function stock(uuid:String):void
{
    qiita.stock(uuid, token);
}

public function getUserItemListCompleteHandler(e:APIEvent):void
{
    var list:Vector.<ItemData> = e.data as Vector.<ItemData>;
    for (var i:int=0; i<list.length; i++) {
        var item:ItemData = list[i];
        stock(item.uuid);
    }
}

public function getUserItemListFailedHandler(e:APIErrorEvent):void
{
    trace("getUserItemList failed!");
    trace("Error :", e.text);
}

public function stockCompleteHandler(e:APIEvent):void
{
    trace("stock complete");
}

public function stockFailedHandler(e:APIErrorEvent):void
{
    trace("stock failed");
    trace("Error :", e.text);
}
8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7