SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
Twitter
              2011/7/28

Twitter4J.org



Copyright(c) Yusuke Yamamoto All rights reserved.   1
http://twitter4j.org/

            http://samuraism.jp/
            @yusukey

Copyright(c) Yusuke Yamamoto All rights reserved.   2
• Twitter
• Twitter API
•              Twitter

• JavaEE Twitter
•


             Copyright(c) Yusuke Yamamoto All rights reserved.   3
Twitter
               Twitter



Copyright(c) Yusuke Yamamoto All rights reserved.   4
•                                   • Twitter
‣                                    ‣ 140




    Copyright(c) Yusuke Yamamoto All rights reserved.   5
•                                         • Twitter
    ‣                                        ‣              /


    ‣                                        ‣      twitter.com           (   )


    ‣                                        ‣                            (           )

                                                                      7

    ‣       RSS

        ‣
        ‣

                  Copyright(c) Yusuke Yamamoto All rights reserved.               6
API
•                                    • Twitter
‣   XML-RPC(Blogger API)                 ‣     REST API

‣                                        ‣
‣




                   Copyright(c) Yusuke Yamamoto All rights reserved.   7
•                                           • Twitter
‣                                               ‣
                                                              (140            )       140
    (                 )
                                                     )
    (             )

‣
                                                ‣
    ‣
        (TypePad,Blogger )                            ‣
    ‣   CAPTHA                                        ‣     CAPTHA


                          Copyright(c) Yusuke Yamamoto All rights reserved.       8
Twitter
•
•
    ‣   mixi

•
•        API




               Copyright(c) Yusuke Yamamoto All rights reserved.   9
Twitter API



Copyright(c) Yusuke Yamamoto All rights reserved.   10
Twitter API
• REST API
• Search API
• Streaming API
• Web                     API




                  Copyright(c) Yusuke Yamamoto All rights reserved.   11
REST API
        • REST: REpresentational State Transfer
        • HTTP API
GET /1/statuses/public_timeline.json HTTP/1.1
Host: api.twitter.com


HTTP/1.1 200 OK
Date: Tue, 08 Feb 2011 07:52:51 GMT
Server: hi
Status: 200 OK
Content-Type: application/json; charset=utf-8
Vary: Accept-Encoding
Connection: close

[{"source": "<a href="http://foursquare.com" rel="nofollow">foursquare</a>",
  "text": "I'm at IKEA         (             2-2-2,      ) [pic]: http://4sq.com/
eOHZdS", ...
  "user": {
   "description": "Java                        rn                           Java   rn#twitter4j
#samurai", "name": "          ", ...}
 },
 ...]


                          Copyright(c) Yusuke Yamamoto All rights reserved.                   12
Twitter                       REST API
•
    ‣
    ‣
    ‣
    ‣



        Copyright(c) Yusuke Yamamoto All rights reserved.   13
Search API
•
    ‣
• search.twitter.com




           Copyright(c) Yusuke Yamamoto All rights reserved.   14
Streaming API
•
•

•



     Copyright(c) Yusuke Yamamoto All rights reserved.   15
Web                                                              API

• Web Intents
   ‣                                               Twitter

   ‣

• @Anywhere
   ‣   JavaScript Twitter

   ‣
               Copyright(c) Yusuke Yamamoto All rights reserved.         16
Copyright(c) Yusuke Yamamoto All rights reserved.   17
•


•
    ‣
    ‣

        Copyright(c) Yusuke Yamamoto All rights reserved.   18
•
    ‣                                            n

•
•

           http://fotopus.com/tough/news/c110304a/


•       Copyright(c) Yusuke Yamamoto All rights reserved.   19
• Web
•
    ‣
•
    ‣   Web                              Web




              Copyright(c) Yusuke Yamamoto All rights reserved.   20
•




ASCII.jp       95
           http://ascii.jp/elem/000/000/605/605027/

              Copyright(c) Yusuke Yamamoto All rights reserved.   21
•
•
    ‣
    ‣




        Copyright(c) Yusuke Yamamoto All rights reserved.   22
•
•   /




        Copyright(c) Yusuke Yamamoto All rights reserved.   23
• Twitter




            Copyright(c) Yusuke Yamamoto All rights reserved.   24
:
• Twitter
• CoTweet
• HootSuite                                                       :




              Copyright(c) Yusuke Yamamoto All rights reserved.       25
•                                                •
    ‣                                               ‣      Twitter API

        ‣ api.twitter.com:443                       ‣                        SLA
            outbound

        ‣ inbout

    ‣
        ‣                                                                          (C) Yiying Lu


                                                             API
        ‣
                         Copyright(c) Yusuke Yamamoto All rights reserved.                    26
JavaEE Twitter



  Copyright(c) Yusuke Yamamoto All rights reserved.   27
JavaEE Twitter
• Twitter4J
 ‣                       (Apache License 2.0)

 ‣
 ‣   Twitter API

 ‣   Twitter API


                            Twitter4J                  http://twitter4j.org/




                   Copyright(c) Yusuke Yamamoto All rights reserved.           28
Twitter4J
• http://twitter4j.org/




                 Copyright(c) Yusuke Yamamoto All rights reserved.   29
Twitter4J                                                   (1)
• dev.twitter.com




               Copyright(c) Yusuke Yamamoto All rights reserved.         30
Twitter4J                                                       (2)
•



• twitter4j.properties                                           twitter4j.properties
    oauth.consumerKey=[                    ]
    oauth.consumerSecret=[                                 ]
    oauth.accessToken=[                    ]
    oauth.accessTokenSecret=[                                        ]


     : Twitter4J -     http://twitter4j.org/ja/configuration.html
                      Copyright(c) Yusuke Yamamoto All rights reserved.                 31
Twitter4J                                                     (3)
  • Twitter                                                     API
import twitter4j.*;
import javax.servet.*;
import javax.servet.http.*;

public class HelloTwitterServlet extends HTTPServlet{
  protected void doGet(ServletRequest req, ServletResponse res){
    Twitter twitter = new TwitterFactory().getInstance();
    twitter.updateStatus(“Hello World!”);
    req.getRequestDispatcher().forward(“WEB-INF/jsps/index.jsp”);
  }
}


    : Twitter4J -         http://twitter4j.org/ja/code-examples.html




                    Copyright(c) Yusuke Yamamoto All rights reserved.         32
Twitter4J                                               (4)
•




        Copyright(c) Yusuke Yamamoto All rights reserved.         33
Twitter4J                                                      (5)
•




    : Twitter4J -        API http://twitter4j.org/ja/api-support.html

                    Copyright(c) Yusuke Yamamoto All rights reserved.         34
Copyright(c) Yusuke Yamamoto All rights reserved.   35
•
•
•                       Twitter API




    Copyright(c) Yusuke Yamamoto All rights reserved.   36
•
    ‣        Twitter

    ‣


    ‣
•
    ‣   DM
             Copyright(c) Yusuke Yamamoto All rights reserved.   37
• API
‣   SSL

‣   twitter4j.properties      useSSL

    (Twitter4J                  HTTP)

                                                                     twitter4j.properties

          http.useSSL=true




                      Copyright(c) Yusuke Yamamoto All rights reserved.                     38
• Twitter API
    ‣          API

•
    ‣   Twitter4J

•
    ‣   MDB

    ‣
                     Copyright(c) Yusuke Yamamoto All rights reserved.   39
• Twitter4J
•
                                                            twitter4j.properties

  http.retryCount=5
  http.retryIntervalSecs=10




              Copyright(c) Yusuke Yamamoto All rights reserved.                    40
(1/2)
• Message Driven Bean
package twittermdb;

import javax.jms.MessageListener;

@MessageDriven(mappedName="jms/Queue")
public class TwitterMDB implements MessageListener {

    Twitter twitter = new TwitterFactory().getInstance();

    public void onMessage(javax.jms.Message msg) {
       try{
         twitter.updateStatus(((TextMessage)msg).getText());
       }catch(TwitterException te){
         throw new EJBException(te);
       }
     }

}


                  Copyright(c) Yusuke Yamamoto All rights reserved.           41
(2/2)
•


                                                        5000




    Copyright(c) Yusuke Yamamoto All rights reserved.           42
Twitter API
• Twitter API
  ‣   afterCompletion
import javax.ejb.*;

@Stateless(name = "tweet", mappedName = "tweet")
public class TweetSLSB {
    public void sayHello(){
        System.out.println("hello");
    }
    @AfterCompletion
    public void afterCompletion(boolean committed){
      if(committed){
        try{
          twitter.updateStatus(((TextMessage)msg).getText());
        }catch(TwitterException te){
          throw new EJBException(te);
        }
      }
    }
}
                 Copyright(c) Yusuke Yamamoto All rights reserved.   43
•
    Twitter

• Java(EE) Twitter API
• Twitter API                                         JavaEE /
    WebLogic




               Copyright(c) Yusuke Yamamoto All rights reserved.   44
Twitter API
•




        http://amzn.to/iUeXjm
             Copyright(c) Yusuke Yamamoto All rights reserved.   45
Twitter API
•




      http://bit.ly/wls_twtr
         #present_twtr_ref
               Copyright(c) Yusuke Yamamoto All rights reserved.   46

Weitere ähnliche Inhalte

Ähnlich wie エンタープライズアプリケーション とTwitterの連携

Big Data Baseball with Python - Ichiro Suzuki hacks! #kwsk01
Big Data Baseball with Python - Ichiro Suzuki hacks! #kwsk01Big Data Baseball with Python - Ichiro Suzuki hacks! #kwsk01
Big Data Baseball with Python - Ichiro Suzuki hacks! #kwsk01Shinichi Nakagawa
 
Twitter Platform 2013
Twitter Platform 2013Twitter Platform 2013
Twitter Platform 2013Sylvain Carle
 
tumblr用クライアントアプリケーションの開発 @ KLabインターン成果発表
tumblr用クライアントアプリケーションの開発 @ KLabインターン成果発表 tumblr用クライアントアプリケーションの開発 @ KLabインターン成果発表
tumblr用クライアントアプリケーションの開発 @ KLabインターン成果発表 Kentaro Iizuka
 
Open Network Live - Chirp 情報共有
Open Network Live - Chirp 情報共有Open Network Live - Chirp 情報共有
Open Network Live - Chirp 情報共有Open Network Lab
 
Demo Pivotal Circle Of Code
Demo Pivotal Circle Of CodeDemo Pivotal Circle Of Code
Demo Pivotal Circle Of CodeGwenn Etourneau
 
[131] packetbeat과 elasticsearch
[131] packetbeat과 elasticsearch[131] packetbeat과 elasticsearch
[131] packetbeat과 elasticsearchNAVER D2
 
前端测试之淘宝实践
前端测试之淘宝实践前端测试之淘宝实践
前端测试之淘宝实践chencheng 云谦
 
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年ichikaway
 
How to make the calculator
How to make the calculatorHow to make the calculator
How to make the calculatorKouji Matsui
 
ビックデータとPythonではじめる野球の統計分析 #pyconjp
ビックデータとPythonではじめる野球の統計分析 #pyconjpビックデータとPythonではじめる野球の統計分析 #pyconjp
ビックデータとPythonではじめる野球の統計分析 #pyconjpShinichi Nakagawa
 
Pythonistaデビュー #PyNyumon 2016/5/31
Pythonistaデビュー #PyNyumon 2016/5/31Pythonistaデビュー #PyNyumon 2016/5/31
Pythonistaデビュー #PyNyumon 2016/5/31Shinichi Nakagawa
 
分享無名小站 API
分享無名小站 API分享無名小站 API
分享無名小站 APIJoseph Chiang
 
【前端测试】淘宝前端测试实践
【前端测试】淘宝前端测试实践【前端测试】淘宝前端测试实践
【前端测试】淘宝前端测试实践taobao.com
 
My Adventures in Twitch Dev
My Adventures  in Twitch DevMy Adventures  in Twitch Dev
My Adventures in Twitch DevGil Megidish
 
地球で一番熱いライブラリ
地球で一番熱いライブラリ地球で一番熱いライブラリ
地球で一番熱いライブラリYusuke Yamamoto
 

Ähnlich wie エンタープライズアプリケーション とTwitterの連携 (20)

Big Data Baseball with Python - Ichiro Suzuki hacks! #kwsk01
Big Data Baseball with Python - Ichiro Suzuki hacks! #kwsk01Big Data Baseball with Python - Ichiro Suzuki hacks! #kwsk01
Big Data Baseball with Python - Ichiro Suzuki hacks! #kwsk01
 
Twitter Platform 2013
Twitter Platform 2013Twitter Platform 2013
Twitter Platform 2013
 
CloudSkew Architecture
CloudSkew ArchitectureCloudSkew Architecture
CloudSkew Architecture
 
tumblr用クライアントアプリケーションの開発 @ KLabインターン成果発表
tumblr用クライアントアプリケーションの開発 @ KLabインターン成果発表 tumblr用クライアントアプリケーションの開発 @ KLabインターン成果発表
tumblr用クライアントアプリケーションの開発 @ KLabインターン成果発表
 
Onsg10 Intro Termtter
Onsg10 Intro TermtterOnsg10 Intro Termtter
Onsg10 Intro Termtter
 
Open Network Live - Chirp 情報共有
Open Network Live - Chirp 情報共有Open Network Live - Chirp 情報共有
Open Network Live - Chirp 情報共有
 
Demo Pivotal Circle Of Code
Demo Pivotal Circle Of CodeDemo Pivotal Circle Of Code
Demo Pivotal Circle Of Code
 
[131] packetbeat과 elasticsearch
[131] packetbeat과 elasticsearch[131] packetbeat과 elasticsearch
[131] packetbeat과 elasticsearch
 
Kotti 紹介
Kotti 紹介Kotti 紹介
Kotti 紹介
 
前端测试之淘宝实践
前端测试之淘宝实践前端测试之淘宝实践
前端测试之淘宝实践
 
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
 
How to make the calculator
How to make the calculatorHow to make the calculator
How to make the calculator
 
ビックデータとPythonではじめる野球の統計分析 #pyconjp
ビックデータとPythonではじめる野球の統計分析 #pyconjpビックデータとPythonではじめる野球の統計分析 #pyconjp
ビックデータとPythonではじめる野球の統計分析 #pyconjp
 
Pythonistaデビュー #PyNyumon 2016/5/31
Pythonistaデビュー #PyNyumon 2016/5/31Pythonistaデビュー #PyNyumon 2016/5/31
Pythonistaデビュー #PyNyumon 2016/5/31
 
Ti.developers.meeting
Ti.developers.meetingTi.developers.meeting
Ti.developers.meeting
 
分享無名小站 API
分享無名小站 API分享無名小站 API
分享無名小站 API
 
【前端测试】淘宝前端测试实践
【前端测试】淘宝前端测试实践【前端测试】淘宝前端测试实践
【前端测试】淘宝前端测试实践
 
My Adventures in Twitch Dev
My Adventures  in Twitch DevMy Adventures  in Twitch Dev
My Adventures in Twitch Dev
 
Bitbucket&mercurial
Bitbucket&mercurialBitbucket&mercurial
Bitbucket&mercurial
 
地球で一番熱いライブラリ
地球で一番熱いライブラリ地球で一番熱いライブラリ
地球で一番熱いライブラリ
 

Mehr von Yusuke Yamamoto

株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokaiYusuke Yamamoto
 
これからはじめるGit、GitHub #stapy
これからはじめるGit、GitHub #stapyこれからはじめるGit、GitHub #stapy
これからはじめるGit、GitHub #stapyYusuke Yamamoto
 
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansanYusuke Yamamoto
 
JetBrains IDEハンズオン
JetBrains IDEハンズオンJetBrains IDEハンズオン
JetBrains IDEハンズオンYusuke Yamamoto
 
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Java Küche 2016 LT 在室状況自動通知ボット #JavaKuecheJava Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Java Küche 2016 LT 在室状況自動通知ボット #JavaKuecheYusuke Yamamoto
 
Java Küche 2016 #JavaKueche
Java Küche 2016 #JavaKuecheJava Küche 2016 #JavaKueche
Java Küche 2016 #JavaKuecheYusuke Yamamoto
 
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...Yusuke Yamamoto
 
WebStormから始まる快適Web開発ワークフロー #html5jk
WebStormから始まる快適Web開発ワークフロー #html5jkWebStormから始まる快適Web開発ワークフロー #html5jk
WebStormから始まる快適Web開発ワークフロー #html5jkYusuke Yamamoto
 
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug Yusuke Yamamoto
 
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...Yusuke Yamamoto
 
カジュアルにスレッドダンプ - @yusuke #javacasual
カジュアルにスレッドダンプ - @yusuke #javacasualカジュアルにスレッドダンプ - @yusuke #javacasual
カジュアルにスレッドダンプ - @yusuke #javacasualYusuke Yamamoto
 
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjugExcel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjugYusuke Yamamoto
 
Twitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hackTwitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hackYusuke Yamamoto
 
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai 株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai Yusuke Yamamoto
 
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjugBotを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjugYusuke Yamamoto
 
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijpTwitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijpYusuke Yamamoto
 
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4Yusuke Yamamoto
 
貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujpYusuke Yamamoto
 
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4Yusuke Yamamoto
 
JavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumiJavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumiYusuke Yamamoto
 

Mehr von Yusuke Yamamoto (20)

株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
 
これからはじめるGit、GitHub #stapy
これからはじめるGit、GitHub #stapyこれからはじめるGit、GitHub #stapy
これからはじめるGit、GitHub #stapy
 
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
 
JetBrains IDEハンズオン
JetBrains IDEハンズオンJetBrains IDEハンズオン
JetBrains IDEハンズオン
 
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Java Küche 2016 LT 在室状況自動通知ボット #JavaKuecheJava Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
 
Java Küche 2016 #JavaKueche
Java Küche 2016 #JavaKuecheJava Küche 2016 #JavaKueche
Java Küche 2016 #JavaKueche
 
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
 
WebStormから始まる快適Web開発ワークフロー #html5jk
WebStormから始まる快適Web開発ワークフロー #html5jkWebStormから始まる快適Web開発ワークフロー #html5jk
WebStormから始まる快適Web開発ワークフロー #html5jk
 
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
 
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
 
カジュアルにスレッドダンプ - @yusuke #javacasual
カジュアルにスレッドダンプ - @yusuke #javacasualカジュアルにスレッドダンプ - @yusuke #javacasual
カジュアルにスレッドダンプ - @yusuke #javacasual
 
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjugExcel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
 
Twitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hackTwitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hack
 
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai 株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
 
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjugBotを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
 
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijpTwitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
 
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
 
貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp貧乏人のHeroku活用術 #herokujp
貧乏人のHeroku活用術 #herokujp
 
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
 
JavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumiJavaScript時代のJava #kansumiB7 #kansumi
JavaScript時代のJava #kansumiB7 #kansumi
 

Kürzlich hochgeladen

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Kürzlich hochgeladen (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

エンタープライズアプリケーション とTwitterの連携

  • 1. Twitter 2011/7/28 Twitter4J.org Copyright(c) Yusuke Yamamoto All rights reserved. 1
  • 2. http://twitter4j.org/ http://samuraism.jp/ @yusukey Copyright(c) Yusuke Yamamoto All rights reserved. 2
  • 3. • Twitter • Twitter API • Twitter • JavaEE Twitter • Copyright(c) Yusuke Yamamoto All rights reserved. 3
  • 4. Twitter Twitter Copyright(c) Yusuke Yamamoto All rights reserved. 4
  • 5. • Twitter ‣ ‣ 140 Copyright(c) Yusuke Yamamoto All rights reserved. 5
  • 6. • Twitter ‣ ‣ / ‣ ‣ twitter.com ( ) ‣ ‣ ( ) 7 ‣ RSS ‣ ‣ Copyright(c) Yusuke Yamamoto All rights reserved. 6
  • 7. API • • Twitter ‣ XML-RPC(Blogger API) ‣ REST API ‣ ‣ ‣ Copyright(c) Yusuke Yamamoto All rights reserved. 7
  • 8. • Twitter ‣ ‣ (140 ) 140 ( ) ) ( ) ‣ ‣ ‣ (TypePad,Blogger ) ‣ ‣ CAPTHA ‣ CAPTHA Copyright(c) Yusuke Yamamoto All rights reserved. 8
  • 9. Twitter • • ‣ mixi • • API Copyright(c) Yusuke Yamamoto All rights reserved. 9
  • 10. Twitter API Copyright(c) Yusuke Yamamoto All rights reserved. 10
  • 11. Twitter API • REST API • Search API • Streaming API • Web API Copyright(c) Yusuke Yamamoto All rights reserved. 11
  • 12. REST API • REST: REpresentational State Transfer • HTTP API GET /1/statuses/public_timeline.json HTTP/1.1 Host: api.twitter.com HTTP/1.1 200 OK Date: Tue, 08 Feb 2011 07:52:51 GMT Server: hi Status: 200 OK Content-Type: application/json; charset=utf-8 Vary: Accept-Encoding Connection: close [{"source": "<a href="http://foursquare.com" rel="nofollow">foursquare</a>", "text": "I'm at IKEA ( 2-2-2, ) [pic]: http://4sq.com/ eOHZdS", ... "user": { "description": "Java rn Java rn#twitter4j #samurai", "name": " ", ...} }, ...] Copyright(c) Yusuke Yamamoto All rights reserved. 12
  • 13. Twitter REST API • ‣ ‣ ‣ ‣ Copyright(c) Yusuke Yamamoto All rights reserved. 13
  • 14. Search API • ‣ • search.twitter.com Copyright(c) Yusuke Yamamoto All rights reserved. 14
  • 15. Streaming API • • • Copyright(c) Yusuke Yamamoto All rights reserved. 15
  • 16. Web API • Web Intents ‣ Twitter ‣ • @Anywhere ‣ JavaScript Twitter ‣ Copyright(c) Yusuke Yamamoto All rights reserved. 16
  • 17. Copyright(c) Yusuke Yamamoto All rights reserved. 17
  • 18. • • ‣ ‣ Copyright(c) Yusuke Yamamoto All rights reserved. 18
  • 19. ‣ n • • http://fotopus.com/tough/news/c110304a/ • Copyright(c) Yusuke Yamamoto All rights reserved. 19
  • 20. • Web • ‣ • ‣ Web Web Copyright(c) Yusuke Yamamoto All rights reserved. 20
  • 21. • ASCII.jp 95 http://ascii.jp/elem/000/000/605/605027/ Copyright(c) Yusuke Yamamoto All rights reserved. 21
  • 22. • • ‣ ‣ Copyright(c) Yusuke Yamamoto All rights reserved. 22
  • 23. • • / Copyright(c) Yusuke Yamamoto All rights reserved. 23
  • 24. • Twitter Copyright(c) Yusuke Yamamoto All rights reserved. 24
  • 25. : • Twitter • CoTweet • HootSuite : Copyright(c) Yusuke Yamamoto All rights reserved. 25
  • 26. • ‣ ‣ Twitter API ‣ api.twitter.com:443 ‣ SLA outbound ‣ inbout ‣ ‣ (C) Yiying Lu API ‣ Copyright(c) Yusuke Yamamoto All rights reserved. 26
  • 27. JavaEE Twitter Copyright(c) Yusuke Yamamoto All rights reserved. 27
  • 28. JavaEE Twitter • Twitter4J ‣ (Apache License 2.0) ‣ ‣ Twitter API ‣ Twitter API Twitter4J http://twitter4j.org/ Copyright(c) Yusuke Yamamoto All rights reserved. 28
  • 29. Twitter4J • http://twitter4j.org/ Copyright(c) Yusuke Yamamoto All rights reserved. 29
  • 30. Twitter4J (1) • dev.twitter.com Copyright(c) Yusuke Yamamoto All rights reserved. 30
  • 31. Twitter4J (2) • • twitter4j.properties twitter4j.properties oauth.consumerKey=[ ] oauth.consumerSecret=[ ] oauth.accessToken=[ ] oauth.accessTokenSecret=[ ] : Twitter4J - http://twitter4j.org/ja/configuration.html Copyright(c) Yusuke Yamamoto All rights reserved. 31
  • 32. Twitter4J (3) • Twitter API import twitter4j.*; import javax.servet.*; import javax.servet.http.*; public class HelloTwitterServlet extends HTTPServlet{ protected void doGet(ServletRequest req, ServletResponse res){ Twitter twitter = new TwitterFactory().getInstance(); twitter.updateStatus(“Hello World!”); req.getRequestDispatcher().forward(“WEB-INF/jsps/index.jsp”); } } : Twitter4J - http://twitter4j.org/ja/code-examples.html Copyright(c) Yusuke Yamamoto All rights reserved. 32
  • 33. Twitter4J (4) • Copyright(c) Yusuke Yamamoto All rights reserved. 33
  • 34. Twitter4J (5) • : Twitter4J - API http://twitter4j.org/ja/api-support.html Copyright(c) Yusuke Yamamoto All rights reserved. 34
  • 35. Copyright(c) Yusuke Yamamoto All rights reserved. 35
  • 36. • • • Twitter API Copyright(c) Yusuke Yamamoto All rights reserved. 36
  • 37. ‣ Twitter ‣ ‣ • ‣ DM Copyright(c) Yusuke Yamamoto All rights reserved. 37
  • 38. • API ‣ SSL ‣ twitter4j.properties useSSL (Twitter4J HTTP) twitter4j.properties http.useSSL=true Copyright(c) Yusuke Yamamoto All rights reserved. 38
  • 39. • Twitter API ‣ API • ‣ Twitter4J • ‣ MDB ‣ Copyright(c) Yusuke Yamamoto All rights reserved. 39
  • 40. • Twitter4J • twitter4j.properties http.retryCount=5 http.retryIntervalSecs=10 Copyright(c) Yusuke Yamamoto All rights reserved. 40
  • 41. (1/2) • Message Driven Bean package twittermdb; import javax.jms.MessageListener; @MessageDriven(mappedName="jms/Queue") public class TwitterMDB implements MessageListener { Twitter twitter = new TwitterFactory().getInstance(); public void onMessage(javax.jms.Message msg) { try{ twitter.updateStatus(((TextMessage)msg).getText()); }catch(TwitterException te){ throw new EJBException(te); } } } Copyright(c) Yusuke Yamamoto All rights reserved. 41
  • 42. (2/2) • 5000 Copyright(c) Yusuke Yamamoto All rights reserved. 42
  • 43. Twitter API • Twitter API ‣ afterCompletion import javax.ejb.*; @Stateless(name = "tweet", mappedName = "tweet") public class TweetSLSB { public void sayHello(){ System.out.println("hello"); } @AfterCompletion public void afterCompletion(boolean committed){ if(committed){ try{ twitter.updateStatus(((TextMessage)msg).getText()); }catch(TwitterException te){ throw new EJBException(te); } } } } Copyright(c) Yusuke Yamamoto All rights reserved. 43
  • 44. Twitter • Java(EE) Twitter API • Twitter API JavaEE / WebLogic Copyright(c) Yusuke Yamamoto All rights reserved. 44
  • 45. Twitter API • http://amzn.to/iUeXjm Copyright(c) Yusuke Yamamoto All rights reserved. 45
  • 46. Twitter API • http://bit.ly/wls_twtr #present_twtr_ref Copyright(c) Yusuke Yamamoto All rights reserved. 46