ドゥアイネットのプログラマー、前田・湯川・濱平・村田・佐藤・重久・出口が開発日記を綴ります。

xauthの申請
開発中のアプリでoauthでなくxauthで認証を行いたかったので、
twitterに申請を行いました。

この申請は英文のメールで行わないといけなかったので、
いろいろなサイトを参考にさせていただいて、文章を作りました。

----------------------------------------------------------------
Hello.

I'm a developer of 「登録しているアプリ名」, the twitter  
client application for adobe air.
※windows、モバイルなど動作環境などを書く

「ここにアプリの説明文」
※説明文はgoogle翻訳で作成しました。

Please apply this app to use xAuth.

Application Name: 「登録しているアプリ名」
Application screenshot is:

http://xxxxxx/xxxxx/xxxxx/jbg
※アプリのスクリーンショット、メール添付ではなくブラウザでみれるようにしないといけません。


My account  : 「ツイッターID」
Consumer Key: 「登録しているアプリのコンシューマキー」



Thank you.
----------------------------------------------------------------


次の日に返信がきていました。

----------------------------------------------------------------
Hi,

Thank you for your interest in xAuth. Your application now has the ability to use xAuth, and our documentation is available here: http://dev.twitter.com/pages/xauth .

Thanks,
Brian

----------------------------------------------------------------

読めなかったので、
「Your application now has the ability to use xAuth」で検索したところ
許可されたときの文章でした。

いろいろな方の申請を参考にしたので、一回で許可してもらえました。

| Flex | 09:17 | comments(0) | - |
twitter-actionscript-apiのクラス
ライブラリtwitter-actionscript-apiでいろいろを試してみました。

内容をまとめておきます。

LoadListMemberships・・・ユーザーが所属しているリストを取得。
引数はユーザーID

LoadListMembers・・・リストのメンバーを取得。
引数はリスト作成者のユーザーIDとリストID
(LoadListMembershipsなどでリストを取得したら、作成者のユーザーIDとリストIDがとれるのでそれを使います)

LoadListStatuses・・・リストのつぶやきを取得。
引数はリスト作成者のユーザーIDとリストID

LoadUserTimeline・・・指定したユーザーのタイムラインを取得。
引数はユーザーID

UpdateStatus・・・つぶやく。
引数はつぶやくテキスト


まだまだ、ライブラリにはクラスがあるのですが、
これだけ使えればとりあえず大丈夫かなと思います。
| Flex | 16:23 | comments(0) | - |
iPad/iPhoneアプリにおけるデザイン
iPadで動かすアプリ用の画面をデザインしました。

当然ですが、標準の部品が異なるため、PC用システムのデザインと
同じように作るわけにはいきません。

例えば、PCでのドロップダウンリストは、iPadまたはiPhoneでは
以下のような部品になります。



指で縦にスライドさせ、右または左のリストを回転させて項目を
選択することになります。

通常のドロップダウンリストも使えるようですが、上記の部品を
使ったほうがカッコイイしiPadらしいですね。

もちろん、自分でデザインして作ったオリジナルのパーツも使えます。
画面の一番上に表示されている部分(時間などが表示されているバー)を
ステータスバーといいますが、このステータスバー以外は背景やアイコン
ともにオリジナルパーツを製作できます。
しかし、そうすると開発時の工数が膨らんでしまいます。

標準部品を使うかオリジナルにデザインしたものを使うか、状況に応じて
見極める必要があるようですね。
| デザイン | 19:13 | comments(0) | - |
Tweenerの「onComplete」
 Tweenerを使ってアニメーション処理をする場合、
アニメーションが終わったときに、別の処理をさらに行う処理を作りました。

アニメーション終了後に行う処理は「onComplete」でfunctionを指定します。
そのfunctionに引数を渡したい場合は、「onCompleteParams」にセットします。

以下の例ではアニメーションでY座標を移動した後、X座標をセットしています。

var v_toY:int = 5;
var v_toX:int = 5;

for each (var v_box:VBox in v_boxArray) {
  Tweener.addTween
  (
    v_box,
    {
      y:v_toY, time:0.3,
      //引数が一つでも配列でセットします。
      onCompleteParams:[v_box,v_toX],
      //終了後の関数を指定します。
      onComplete:
      function(p_box:VBox,p_toX:int):void
      {
        p_box.x = p_toX;
      }
    }
  );
 
  v_toY += 10;
  v_toX += 5;
 
}
| Flex | 10:50 | comments(0) | - |
twitter-actionscript-api
 oauthを使えるライブラリを試してみました。

twitter-actionscript-apiです。
これもまたGoogleCodeからソースをダウンロードして使いました。

今回はサンプルプログラムもあったのでそれを実行して試してみました。
画像
ID・パスワードを入力して許可するをクリックすると、7桁の数字が表示されます。

画像
さらにその数字を入力すると認証が完了して一覧が表示されます。

画像

これでoauth認証ができているのですが、毎回IDとパスワードを入力して
さらに数字を入力しなければいけません。面倒ですね。。

調べてみると、数字で認証したときに、アクセスキーとアクセスのパスワードを取得しているようです。
これを使うと最初のtwitterのID・パスワードを入力しないで認証できます。

ライブラリの「OAuthTwitterConnection.as」に
アクセスキーとアクセスのパスワードを取得しているところがあります。

private function handleAccessToken(event:ResultEvent):void
{
  var params:Array = event.result.toString().split("&");
  for (var i:int = 0; i < params.length; i++)
  {
      var param:String = params[i];
      var nameValue:Array = param.split("=");
    if (nameValue.length == 2)
    {
          switch (nameValue[0])
          {
            case "oauth_token":
              accessToken.key = nameValue[1];
              trace("accessToken.key:" + accessToken.key);
              break;
            case "oauth_token_secret":
              accessToken.secret = nameValue[1];
              trace("accessToken.secret:" + accessToken.secret);
              break;
            case "user_id":
              userId = nameValue[1];
              trace("userId:" + userId);
              break;
            case "screen_name":
              screenName = nameValue[1];
              trace("screenName:" + screenName);
              break;
            default:
          }
    }
  }
  _authorized = true;
  dispatchEvent(new OAuthTwitterEvent(OAuthTwitterEvent.AUTHORIZED));
}

このキーとパスワードを使うと1回のやりとりで認証できます。
試しにtraceで出力したキーとパスワードで認証してみます。

private function authtest():void
{

  twitterApi.connection.setAccessToken("取得したaccessToken.key", "取得したaccessToken.secret");

  var op:TwitterOperation = new VerifyCredentials();
  var handler:Function = function (event:TwitterEvent):void
  {

    op.removeEventListener(TwitterEvent.COMPLETE, handler);
    if (event.success)
    {
      trace("Credentials verified. User is: " +  TwitterUser(event.data).screenName);
    }
    else
    {
      trace("Verification error. Twitter error message: " +  event.data);
    }
  };
  op.addEventListener(TwitterEvent.COMPLETE, handler);
  twitterApi.post(op, TwitterAPI.POST_TYPE_ASYNC_STATIC,  TwitterAPI.PRIORITY_HIGHEST);

}

SharedObjectなどに保存しておけば、ユーザーの入力なしで認証できるようになります。
このライブラリはoauthもできますし、使えるAPIの種類も多いので良さそうです。
| Flex | 18:57 | comments(0) | - |
| 1/112PAGES | >>