スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

サンプルプログラムは動くようなので次ぎへ[前回の続き]

前回のでサンプルプログラムが動いてAPIとか有志で作ってくれてるライブラリとかの使い方が、
めっさ軽くわかったので次へ進みたい。

目標は高く、出来ないこと承知の上で。
1分15秒あたりの雰囲気 http://www.youtube.com/watch?v=JwqMNjRlqfA



つぶやきを貰ってきて、それに個別にウィンドウをだしてあげる。(A)
そんだけ。あと個別に返信ボタンとかつけてあげてAのウィンドウに吹き出しでも付けて繋げてあげれれば
もう完成。(B)



まずは、それっぽいつぶやきウィンドウを沢山つくれるようにするところから。




が、眠い後日.


前回の記事に追記
※SharedObjectで保存した後、自動で判別できる。わざわざ、いっこシーン(?)みたいなの作る必要なし。
※普通に判断させてやればいいじゃん。ばか。

前回の続き ライブラリを少し変えるところから前回の認証を使うとこまで

引き続き、前回同様にライブラリに追記していく作業なう


今日やりたいこと
-SharedObjectで保存するようにする。
-SharedObjectで保存したキーと秘密を利用して面倒な認証をスルーする



1)OAuthTwitterConnection.asに追記
import flash.net.SharedObject;//**

↓を追加してみた
var so:SharedObject = SharedObject.getLocal("ATkey");//***
var sos:SharedObject = SharedObject.getLocal("ATSecret");//***

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);
so.data.id = accessToken.key;
so.flush();
if (so.data.id != "")
{
trace("ME]accessToken.key:"+ so.data.id);
}
break;

case "oauth_token_secret":
accessToken.secret = nameValue[1];
//trace("accessToken.secret:" + accessToken.secret);
sos.data.id = accessToken.secret;
sos.flush();
if (sos.data.id != "")
{
trace("ME]accessToken.secret:"+ so.data.id);
}
break;

case "user_id":
userId = nameValue[1];
break;
case "screen_name":
screenName = nameValue[1];
break;
default:
}
}
}



追加もとい追記。
ただ、保存させるようにしただけ。

if (sos.data.id != "") 的なのは、保存出来てるかどうか確かめるだけだけ。




2)保存は出来たので、読んで利用する方までのを追加
認証してるところ表示させたりPIN入力するところをスルーするようにしたい。
目標:自動であるか無いか判断して認証させるなりさせたい

自動のまえに手動でやらせてみる。

やって欲しいことの順番はこんな感じ↓
あ)起動し画面表示
い)①前回のアカウント利用?②新しいアカウント利用?
う①)アクセストークンシークレットとキーをセットする
 え①)画面を切り替え(TwitterScreenに)loadTweets()を動かしてあげる。
う②)認証画面へGo(authScreenへ)
 え②)認証後画面を切り替え(TwitterScreenに)loadTweets()を動かしてあげる。
お)あとは今までと一緒


あ]
ソースからデザイン表示してVBOXを一個追加
ソースに戻りauthScreenの上にさっき追加したVBOXのひとかたまりを移動
なかに前回のアカウント利用 と 新しいアカウント利用のボタンを作り、クリックしたら飛ぶようにする。

い以降]
new_A(ryを新しいアカウント利用のクリックで実行するやつ。
back_(ryが前回のアカウント利用で実行するやつ

protected function new_Account_clearHandler(event:Event):void
{
viewstack.selectedChild = authScreen;
}


protected function back_Account_clickHandler(event:MouseEvent):void
{
status = "Authorized";
viewstack.selectedChild = twitterScreen;
if ((so.data.id != "")&&(sos.data.id != ""))
{
twitterApi.connection.setAccessToken(so.data.id,sos.data.id);

}
loadTweets();
}



一応目標達成(∩´∀`)∩ワーイ
一応というのはエラーが出てるからそれつぶさなきゃなって。
一応実行するとできる
何をやってるかわかれば余裕ですた



エラー:TypeError: Error #1009: Cannot access a property or method of a null object reference.
http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=3413
あうあう><



参考
http://blog.studio23c.com/?p=597

初めてのライブラリいじり[Adobe AIRで動くTwitterクライアント作成の手がかり]の続き

初投稿から一ヶ月が過ぎ去ろうとしてます。
前回同様うざがられたくないためこっちにカキカキ



友達募集
http://twitter.com/#!/lllllYkeillll が本アカ
※フォローしてください!話しかけてください!!!11



----------------
------本題------
----------------
※プログラミング初心者が書いた記事です。間違ってても許して。

http://blog.doinet.co.jp/?eid=1031647様のところより、
>>調べてみると、数字で認証したときに、アクセスキーとアクセスのパスワードを取得しているようです。
>>これを使うと最初のtwitterのID・パスワードを入力しないで認証できます。

とのこと、

今日やりたいこと
-既存のライブラリを↑のブログ様を元に編集
-そのライブラリを利用して、SharedObjectを使い何回も認証作業をしなくて済むようにする。

1)ソースDL
GoogleCodeの↓からDL
http://code.google.com/p/twitter-actionscript-api/source/browse/
ブラウザで一個一個DLするのはダリィので、TortoiseSVNを使って一気にDL らくちん

2)Flash Builderとかで開く
「Flexプロジェクトを読み込み」で開く。 らくちん


3)対象のライブラリをイジる
OAuthTwitterConnection.asを探す。 いた。→ TwitterAPI/src/com/dborisenko/api/twitter/oauth/OAuthTwitterConnection.as
accessToken.keyとaccessToken.secretを探す。 →handleAccessTokenの中にいる。
とりあえず、Traceで実行時に表示させる。上記のブログ様と同じように↓な感じに。
例)
 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;


4)ライブラリの○○○○○
 コンパイル。
 というかビルドするだけ。

5)使う
 全部一緒なので、デモのやつと差し替えで動く。
 フォルダの「Libs」につっこむ、できあがった、なんたら.swcを。
 で、実行(デバッグ)すると、アクセスとーくんキーとアクセスとーくんシークレットがコンソールに表示される。
 例)
 [SWF] TwitterAIRDemo.swf - 2,686,461 バイト (圧縮後)
 accessToken.key:250000079-tkIIqaswderftgy7ujiklo0000000000o4
 accessToken.secret:gggg4gAi9tERvc999999999999999999999xxxxx
 

 な感じに。


6)キー利用
 さっきのこの二つの文字列を使うことにより、何度も認証しなくて済むようになるらしいので、
 サンプルプログラムを上記のブログ様が書いている通りにコピペして作ります。

 だけど、新しく作るのはよくわからんので、TwiterAIR(ryを利用します。


//private function authtest():void
protected function loadTweets():void
{

twitterApi.connection.setAccessToken("xxxxxxxxxxxxxhtRzFebYS4TKW8I1NtUXBvSo4", "bX4xxxxxxxxxxxxxxxxxxxxxxXRAKFpEMY9zaNc44");

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);

}




/*
protected function loadTweets():void
{
status = "Loading tweets";
var op:TwitterOperation = new LoadHomeTimeline();
var handler:Function = function (event:TwitterEvent):void
{
op.removeEventListener(TwitterEvent.COMPLETE, handler);
if (event.success)
{
status = "Tweets loaded";
twitterStatuses = event.data as ArrayCollection;
}
else
{
status = "Loading error: " + event.data.toString();
}
};
op.addEventListener(TwitterEvent.COMPLETE, handler);
twitterApi.post(op);
}
*/

 TwitterAIRDemo.mxmlに書いてるところを下のように変更して実行(デバッグ)してあげる。
 でも、そのままだとうまく動いてくれないので、IMPORTを少し増やしてあげる。
例)
import com.dborisenko.api.twitter.commands.account.VerifyCredentials;
//import com.dborisenko.api.twitter.net.TwitterOperation;
import com.dborisenko.api.twitter.data.TwitterUser;



 すると、動く・・・! ハズ
 ※認証後、PINを入力したあと、コンソールのところに「Credentials verified. User is: llllYkeillllll」と表示されます。雰囲気で理解ですがさきほどのアクセスとーくんの2つのキーを使ってTwitterアカウントにアクセス出来た気がします。


7)SharedObjectに保存するようにライブラリを書き換えてあげる
 ここから自分が書いたソースばっかです≒結構間違ってる
 SharedObjectの使い方はこちらhttp://blog.studio23c.com/?p=597
 
 これ使って少しだけ書き換えるというか、関数を適当かつ適切に追加

 






参考URL一覧
http://livedocs.adobe.com/flex/3_jp/html/help.html?content=rsl_03.html
http://blog.doinet.co.jp/?eid=1031647
http://internet.newspoint.info/flash-platforma-primer-ispolzovaniya-twitter-api-biblioteki-na-air
http://code.google.com/p/twitter-actionscript-api/

Adobe AIRで動くTwitterクライアント作成の手がかり

情報を公開していただいてる皆様に感謝
Twitterにメモを書くとフォローしてる人がうざがりそうでいやなのでこっちにメモです。
というか、間違ったことをつぶやいてたら鬱なのでせめても一気に消えるようにしたい´A`




友達になってください。ぼやいてるだけですがしゃべりかけてくれたら返したいと思ってるので。
Twitter lllllYkeillll
 http://twitter.com/#!/lllllYkeillll




120%雰囲気で理解の領域
twitter-actionscript-apiの利用


1.Twitterクライアント作成
 OSを超えたものがいいね。
  →Rubyであるが。
   →http://sites.google.com/site/peraperaprv/ja
    →アイコンが良い
   →Oauthの仕組みが理解したかったということで面倒逃避
  →AIRで作りたい。
   →AS3.0で作りたい。

   
2.うろついた履歴
 TwitterによるActionScriptの村八分感がぱない。
 というか情報非公開がおおい。MacとかLinuxで使えるようにAIRで出してるひとはたくさん居るんだけど
 ソースをあげてくれない。
 というか、Oauth認証自体が自力で書けるレベルらしく(苦労するらしい)公開するレベルじゃないでしょう(笑)
 みたいな風潮
 だけど一々投げるやつ作ってーってのはどっからどうみてもダリィ


 去年10月くらい
  http://digianaware.jugem.jp/?eid=194
   →ベーシック認証が出来なくなったため不可
 今年先週くらい
  http://wiki.swfjunkie.com/tweetr:downloads
   →対象がサーバーより。よくわかんないけどPHPにとばしてるので
    WEBページ上からFlashでTwitterを利用したい時とデスクようぽい。
    →今回はデスクトップアプリとして使いたいため面倒逃避
    →http://blog.appforandroid.info/?p=411
     →AIRでやってるようです。
   →http://wiki.swfjunkie.com/tweetr:hotwos:using-oauth
    →英語も読めないくせにチュートリアルを聞き
    →なぜPHPを通してるのか理解した。
    →WEBページ向けのライブラリぽい?みたいな
   
 
 最終的に
  http://code.google.com/p/twitter-actionscript-api/
  →http://blog.doinet.co.jp/?eid=1031650
   →http://blog.doinet.co.jp/?eid=1031647
   →等のブログ様からtwitter-actionscript-apiに出会いました。
  →http://internet.newspoint.info/flash-platforma-primer-ispolzovaniya-twitter-api-biblioteki-na-air
   →ロシア語でソースを解説してくれてるとこへゆき(なぜかGoogleCodeからは飛んでないorz)
   →Google翻訳を使いロシア語から日本語に変換し
    →http://dev.dborisenko.com/twitter-actionscript-api/examples/TwitterAIRDemo/srcview/
     →サンプルプログラムのソースを配布してくれてるとこへゆき
      →http://dev.dborisenko.com/twitter-actionscript-api/examples/TwitterAIRDemo/srcview/TwitterAIRDemo.zip
       →上のをDLしてきてFlashBuilder4で動かした。
       →ソース全部読んでないし、使ってるtwitter-actionscript-api自体の動きとか全然理解してない
        けど、雰囲気でサーバーに置いてやってる感じではないので目標物発見とする。


3.サンプルプログラムを理解
 →mxmlだけど、基本AS3なので雰囲気で理解。
  →ファイル名やクラス名から理解。
   →オブジェクト指向を少しでも舐めてれば読めるレベル


5.今
今は、FlashBuilder4の勉強中。
もといmxmlの勉強。
FlashProで開発したかったけど、Builderでも同じことができるようなのでBuilderでカキカキφ



自分みたいに嵌りすぎてなかったら問題ないでしょうが
似たようなことをしてる人がいて探してて参考になったらいいな。 的なね。


友達のおかげでロシア語翻訳にたどり着いたのでまとめて書いておきました。
間違ってるとこがあったらごめn
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。