Skip to main content
女子中高生と
              Twitter4J
                  #twtr_hack

                     RECRUIT
              Media Technology Labs
                      黒田 樹
                      @i2key


12年4月25日水曜日
自己紹介



12年4月25日水曜日
@i2key




12年4月25日水曜日
System Integrator

                 元SIer

12年4月25日水曜日
12年4月25日水曜日
              官公庁系システム
数百億円規模
12年4月25日水曜日
エクセルドリブン開発推進
  エクセル方眼紙から
   Javaソースを
 自動生成します(キリッ

12年4月25日水曜日
人海戦術
12年4月25日水曜日
転職



12年4月25日水曜日
ネット企業のR&D部門
  Java、Android、ObjC
       Engineer

12年4月25日水曜日
by the way



12年4月25日水曜日
これなんて読みます?




12年4月25日水曜日
電車 ぎゅー ぎゅー




12年4月25日水曜日
じゃー これは?




12年4月25日水曜日
し  ぶ  や




12年4月25日水曜日
今日お話するのは
       絵文字
コミュニケーションアプリ
 Powered by Twitter
12年4月25日水曜日
経緯



12年4月25日水曜日
メディアの
         マイクロコンテンツ化



12年4月25日水曜日
CD(曲の集合)
               ↓
       iTunes Music Store
         (曲のバラ売り)

12年4月25日水曜日
雑誌(記事全て)
                   ↓
              電子書籍(特集のみ)

12年4月25日水曜日
インターネットを介した
    コミュニケーションも


12年4月25日水曜日
Webサイト(∼∞)
                       ↓
                ページ(∼数千字)
                       ↓
                Blog(∼数百字)
                       ↓
               Twitter(∼140字)
                       ↓
              BBiitt情報?(∼3字)
12年4月25日水曜日
仮説11

コミュニケーション手段の
更なる
マイクロコンテンツ化

12年4月25日水曜日
また、
              こんな経験ない?


12年4月25日水曜日
自分:「今から帰る」
          妻:「 」


12年4月25日水曜日
自分:
 「今から帰る(からあと1時間く
 らいで家につくわ)」
 妻:
 「 (そのタイミングでご飯作っ
 ておくね)」

12年4月25日水曜日
コンテキストを共有して
        いる関係において、コ
    ミュニケーションは限り
              なく短縮される

12年4月25日水曜日
「あ、うん」

12年4月25日水曜日
12年4月25日水曜日
話し手の責任が重い
                わかりやすい表現を好む
                 論理的飛躍を好まない
              全てを性格に書かないと通じない



  ローコンテキスト文化
12年4月25日水曜日
聞き手の能力を期待する
                   曖昧な表現を好む
                   論理的飛躍を許す
              相手の意図を察し合うことが出来る




   ハイコンテキスト文化
12年4月25日水曜日
仮説22

日本でなら、
コンテキストを共有する
関係において、
「あ、うん」((絵文字))
だけで会話になるのでは
12年4月25日水曜日
じゃあ検証しよう



12年4月25日水曜日
ターゲットは



12年4月25日水曜日
ハイコンテキストな関係
クローズドなネットワーク
    携帯絵文字を頻繁に使う

12年4月25日水曜日
JJCC,,JJKK
12年4月25日水曜日
ここで5分なら
  良いペース


12年4月25日水曜日
というわけで
               作ってみた


12年4月25日水曜日
http://happyballoon.jp/




12年4月25日水曜日
12年4月25日水曜日
12年4月25日水曜日
12年4月25日水曜日
12年4月25日水曜日
12年4月25日水曜日
12年4月25日水曜日
Technology




12年4月25日水曜日
12年4月25日水曜日
Infrastructure
  Architecture



12年4月25日水曜日
C2DM

                                    Twi$erAPI

                                                                     Mul2CAZ

      Apple,Push,
      No2fica2on,Service
                                                               RDS


                                     AutoScaling
                                                         EC2
                             Load,Balancer


                                                                      S3
                                                   EC2




12年4月25日水曜日
Application
   Architecture



12年4月25日水曜日
Springを使った典型的なDIパターン
     (本当はPlay!にしようとしたけどビビった)

  hKps               API,KEY                                                             TwiKer4J
                                                             facade
                                                                                          APNS
                                                contro
                                                                                          C2DM
                                                  ller                        dao
              Port
       SSL,




                                                             facade                       O/R,
                      JSON,                                                              Mapper
              ,




                     JSONP,                                                   dao                   RDS
                      XML,                                                               Pooling
                     HTML,                                  DI
                                                         Tomcat
         Apache,
                                                          JVM
                                       Amazon,Linux,(MTL,Amazon,Image)

                                   ,                            OS       FW         FW
              (                )
12年4月25日水曜日
HappyBalloonでの
               TwitterAPI利用
              (Twitter4J経由で)

12年4月25日水曜日
OAuth認証
ツイート
相互フォローリスト
プロフィール取得
DM送信
PRツイートBOT
フォロー返しBOT
12年4月25日水曜日
自動フォロー返しBOT
              (コピペで今から使えるよ!)




12年4月25日水曜日
import       twitter4j.Twitter
 import       twitter4j.TwitterFactory
 import       twitter4j.TwitterException
 import       twitter4j.Status
 import       twitter4j.auth.AccessToken
 import       twitter4j.IDs

 val twitter: Twitter = new TwitterFactory().getInstance();
 twitter.setOAuthConsumer("consumerKey", "consumerSecret");
 twitter.setOAuthAccessToken(new AccessToken("accessToken",
 "accessTokenSecret"));

 //自分がフォローしている人々を取得

 val friends = twitter.getFriendsIDs(twitter.getId(),-1).getIDs();
 //自分をフォローしてくれている人々を取得

 val followers = twitter.getFollowersIDs(twitter.getId(),-1).getIDs();

 //followersとfriendsを比較し自分がフォローしていない人のリストを作成し、それに対してフォローを行う

 followers.filter(!friends.contains(_))
          .foreach(twitter.createFriendship(_));


#scala -cp twitter4j-core.jar AutoRefollow.scala
                               http://d.hatena.ne.jp/i2key/20120225/1330143015
12年4月25日水曜日
ところで



12年4月25日水曜日
TwitterAPI
40X,50X Error返りすぎ


12年4月25日水曜日
測ってみた



12年4月25日水曜日
APIコール:98504回
       40X,50X: 766回


              00..7788%%
12年4月25日水曜日
例えば、絵文字ツイート




12年4月25日水曜日
送信処理を非同期にしつつ、
           リトライを仕込む
 //4XXや5XXでても3回まではリトライする
 int continuousErrorCount = 0;
 while(true){
 ! try {
 ! ! //やりたいのはこれだけ
 !   ! twitter.updateStatus(status);
 !   } catch (TwitterException e) {
 !   ! Integer errorCode = e.getStatusCode();
 !   ! if(errorCode.toString().startsWith("5") || errorCode.toString().startsWith("4")){
 !   ! ! continuousErrorCount++;
 !   ! ! if(continuousErrorCount < 4){
 !   ! ! ! continue;
 !   ! ! }else{
 !   ! ! ! //リトライ4回目で終了(もう無理あきらめる)
 !   !   ! ! return false;
 !   !   ! }
 !   !   }else{
 !   !   ! //STATUS CODE = 3XX , 2XXのときはリトライなしで終了


                                        なんかダサイけど
 !   ! ! return false;
 !   ! }
 !   }
 !   //成功したら終了


                                       こんなもんなの??
 !   break;
 }
12年4月25日水曜日
告知

12年4月25日水曜日
12年4月25日水曜日