ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 
<< March 2017 >>
ARCHIVES
CATEGORIES
<< twitterscript | main | Tweenerの「onComplete」 >>
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) | - |
コメント
コメントする