SlideShare a Scribd company logo
1 of 44
Download to read offline
Twitter API


               2012/01/28

     Twitter4J -


  Copyright(c) Yusuke Yamamoto All rights reserved.
@yusukey
  Copyright(c) Yusuke Yamamoto All rights reserved.
Java Twitter API
Twitter API



   Copyright(c) Yusuke Yamamoto All rights reserved.
Twi$er'API
  REST'API'                                                         '
                         '                              '
                 '                                              '
                 '                                          '
                     '                                  '

                                                                            :'               '
       API
                                                                            :'Java,'Objec8ve9C    '


                 API
       Streamed'Tweets'
                                                                                            ,'        '
                                                                        Java,'Python,'PHP,'Ruby,'Objec8ve9C       '



 Web                 API
                             '               Web'Intents
                                                                            :'Web       '
                             '               @Anywhere
                                                                            :'HTML,'JavaScript'


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



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




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




            Copyright(c) Yusuke Yamamoto All rights reserved.
• https://dev.twitter.com/apps/new




           Copyright(c) Yusuke Yamamoto All rights reserved.
Application Type :




      Copyright(c) Yusuke Yamamoto All rights reserved.
Read, Write, &
                                              Read & Write   Read only
           Access direct messages


                       ○                            ○          ○
                       ○                            ○          ×
                       ○                            ○          ×
                       ○                            ×          ×

Copyright(c) Yusuke Yamamoto All rights reserved.
OAuth




Copyright(c) Yusuke Yamamoto All rights reserved.
Sign in with Twitter




    Copyright(c) Yusuke Yamamoto All rights reserved.
XAuth




Copyright(c) Yusuke Yamamoto All rights reserved.
REST API



Copyright(c) Yusuke Yamamoto All rights reserved.
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.                   16
Twitter                              REST API
  •             100

  • 20
  •
Timeline
           http://api.twitter.com/statuses/***.json
User
        http://api.twitter.com/users/***.json
Direct message
        http://api.twitter.com/direct_messages/***.json

                      Copyright(c) Yusuke Yamamoto All rights reserved.
API



Copyright(c) Yusuke Yamamoto All rights reserved.
API
•
    ‣
• https://twitter.com/#!/search-home




               Copyright(c) Yusuke Yamamoto All rights reserved.   19
API
•                             (GET)

‣   http://search.twitter.com/search.json?q=****

•q
    q:

         #twtr_hack

    q=#twtr_hack
         @yusukey #twtr_hack

    q=#twtr_hack+from:yusukey

                       Copyright(c) Yusuke Yamamoto All rights reserved.   20
Query query = new Query(term); query.rpp(100);
do {
 QueryResult qr = twitter.search(query);
 tweets = qr.getTweets();
 for (Tweet tweet : tweets) {
   // ...
 }
 if (tweets.size() != 0) {
   query.setMaxId(tweets.get(tweets.size() - 1).getId() - 1);
 }
} while (tweets.size() != 0);



    rpp 100        page 15

      1500                               →max_id                            ok

 Twitter4J
                   Copyright(c) Yusuke Yamamoto All rights reserved.   21
API



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

•
    •                                   REST API

•
    •           HTTP

    •
    •   comet        WebSocket


                 Copyright(c) Yusuke Yamamoto All rights reserved.
$ wget --output-document=- --user=*** --password=*** https://
stream.twitter.com/1/statuses/sample.json




                    Copyright(c) Yusuke Yamamoto All rights reserved.
API
• Streamed Tweets
 •
• User Stream
 •
• Site Stream
 •


          Copyright(c) Yusuke Yamamoto All rights reserved.
sample
•                                                                    1%

•                                  (GET)

‣   https://stream.twitter.com/1/statuses/sample.json

•
‣
•
‣   status                        json (REST API                      )


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


                Copyright(c) Yusuke Yamamoto All rights reserved.
FAQ
• sample.json
 •                                                              %




                Copyright(c) Yusuke Yamamoto All rights reserved.
filter
 •
 •                                 (POST)

‣   https://stream.twitter.com/1/statuses/filter.json

 •
‣ follow, track, locations
 •
‣   status                        json (REST API                     )


                 Copyright(c) Yusuke Yamamoto All rights reserved.
User Stream
•

•        :
    •                                        DM fav / follow

    •
    •   OAuth( or XAuth)




                Copyright(c) Yusuke Yamamoto All rights reserved.
Site Stream(beta)
•

•       : Twitter
    •                                        DM fav / follow

    •
    •   OAuth




                Copyright(c) Yusuke Yamamoto All rights reserved.
Site Stream
•                                                                100

    •       OAuth



•
    •   1                             1000




             Copyright(c) Yusuke Yamamoto All rights reserved.
• Site Stream
        {"control": {
           "control_uri":"/2b/site/c/1_1_54e345d655ee3e8d"
        }}


   • REST
  https://sitestream.twitter.com/2b/site/c/1_1_54e345d655ee3e8d"


https://dev.twitter.com/docs/streaming-api/control-streams

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

• gzip
    •
•
    •   3G



                Copyright(c) Yusuke Yamamoto All rights reserved.
FAQ
•                               API JavaScript

    •
• 1%
    •   http://gnip.com/

• firehose
    •


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



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

<script type="text/javascript" src="http://
platform.twitter.com/widgets.js"></script>

<a href="http://twitter.com/intent/retweet?
tweet_id=163049746431348736">        </a>



     http://bit.ly/web-intents
             Copyright(c) Yusuke Yamamoto All rights reserved.
@Anywhere
• JavaScript                                                       Twitter




               Copyright(c) Yusuke Yamamoto All rights reserved.
@Anywhere

@yusukey
<script type="text/javascript">
   twttr.anywhere(function (T) {
     T.hovercards({expanded:true});
     });
</script>


    http://bit.ly/hover-cards
           Copyright(c) Yusuke Yamamoto All rights reserved.
Twitter




 Copyright(c) Yusuke Yamamoto All rights reserved.
Copyright(c) Yusuke Yamamoto All rights reserved.
•   Twitter development talk-ja

    http://bit.ly/tdt-ja

• dev.twitter.com - Discussions
    https://dev.twitter.com/discussions

              Copyright(c) Yusuke Yamamoto All rights reserved.
@twj_dev



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

•




        http://amzn.to/iUeXjm
             Copyright(c) Yusuke Yamamoto All rights reserved.   44

More Related Content

Similar to Twitter 研究会2012-1-28 - Twitter APIの紹介

前端测试之淘宝实践
前端测试之淘宝实践前端测试之淘宝实践
前端测试之淘宝实践chencheng 云谦
 
今熱いオープンソース
今熱いオープンソース今熱いオープンソース
今熱いオープンソースYusuke Yamamoto
 
分享無名小站 API
分享無名小站 API分享無名小站 API
分享無名小站 APIJoseph Chiang
 
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年ichikaway
 
TypeScript와 Flow: 
자바스크립트 개발에 정적 타이핑 도입하기
TypeScript와 Flow: 
자바스크립트 개발에 정적 타이핑 도입하기TypeScript와 Flow: 
자바스크립트 개발에 정적 타이핑 도입하기
TypeScript와 Flow: 
자바스크립트 개발에 정적 타이핑 도입하기Heejong Ahn
 
【前端测试】淘宝前端测试实践
【前端测试】淘宝前端测试实践【前端测试】淘宝前端测试实践
【前端测试】淘宝前端测试实践taobao.com
 
Social media analysis in R using twitter API
Social media analysis in R using twitter API Social media analysis in R using twitter API
Social media analysis in R using twitter API Mohd Shadab Alam
 
Liberated APIs in ClojureLand - Paris Clojure User Group
Liberated APIs in ClojureLand - Paris Clojure User GroupLiberated APIs in ClojureLand - Paris Clojure User Group
Liberated APIs in ClojureLand - Paris Clojure User GroupGaylord Mazelier
 
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office HoursIVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office HoursAmazon Web Services Japan
 
Life at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsLife at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsChris Aniszczyk
 
Collecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuCollecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuShinichi Tomita
 
Webservices: The RESTful Approach
Webservices: The RESTful ApproachWebservices: The RESTful Approach
Webservices: The RESTful ApproachMushfekur Rahman
 
Ce hv6 module 52 hacking rss and atom
Ce hv6 module 52 hacking rss and atomCe hv6 module 52 hacking rss and atom
Ce hv6 module 52 hacking rss and atomVi Tính Hoàng Nam
 
SpringOne Platform 2017報告会 メインプロジェクトのアップデート
SpringOne Platform 2017報告会 メインプロジェクトのアップデートSpringOne Platform 2017報告会 メインプロジェクトのアップデート
SpringOne Platform 2017報告会 メインプロジェクトのアップデートTakuya Iwatsuka
 
Social Media Data
Social Media DataSocial Media Data
Social Media DataWill Simm
 

Similar to Twitter 研究会2012-1-28 - Twitter APIの紹介 (20)

前端测试之淘宝实践
前端测试之淘宝实践前端测试之淘宝实践
前端测试之淘宝实践
 
今熱いオープンソース
今熱いオープンソース今熱いオープンソース
今熱いオープンソース
 
分享無名小站 API
分享無名小站 API分享無名小站 API
分享無名小站 API
 
Ti.developers.meeting
Ti.developers.meetingTi.developers.meeting
Ti.developers.meeting
 
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年Yapc8oji: セキュリティテストサービスを開発運営してきた2年
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
 
TypeScript와 Flow: 
자바스크립트 개발에 정적 타이핑 도입하기
TypeScript와 Flow: 
자바스크립트 개발에 정적 타이핑 도입하기TypeScript와 Flow: 
자바스크립트 개발에 정적 타이핑 도입하기
TypeScript와 Flow: 
자바스크립트 개발에 정적 타이핑 도입하기
 
【前端测试】淘宝前端测试实践
【前端测试】淘宝前端测试实践【前端测试】淘宝前端测试实践
【前端测试】淘宝前端测试实践
 
Social media analysis in R using twitter API
Social media analysis in R using twitter API Social media analysis in R using twitter API
Social media analysis in R using twitter API
 
Daum오픈api
Daum오픈apiDaum오픈api
Daum오픈api
 
Liberated APIs in ClojureLand - Paris Clojure User Group
Liberated APIs in ClojureLand - Paris Clojure User GroupLiberated APIs in ClojureLand - Paris Clojure User Group
Liberated APIs in ClojureLand - Paris Clojure User Group
 
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office HoursIVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
IVS CTO Night And Day 2018 Winter - AWS Startup Tech Office Hours
 
Life at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsLife at Twitter + Career Advice for Students
Life at Twitter + Career Advice for Students
 
Onsg10 Intro Termtter
Onsg10 Intro TermtterOnsg10 Intro Termtter
Onsg10 Intro Termtter
 
Collecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuCollecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on Heroku
 
Webservices: The RESTful Approach
Webservices: The RESTful ApproachWebservices: The RESTful Approach
Webservices: The RESTful Approach
 
TwitterLib.js
TwitterLib.jsTwitterLib.js
TwitterLib.js
 
Ce hv6 module 52 hacking rss and atom
Ce hv6 module 52 hacking rss and atomCe hv6 module 52 hacking rss and atom
Ce hv6 module 52 hacking rss and atom
 
Open at Yahoo
Open at YahooOpen at Yahoo
Open at Yahoo
 
SpringOne Platform 2017報告会 メインプロジェクトのアップデート
SpringOne Platform 2017報告会 メインプロジェクトのアップデートSpringOne Platform 2017報告会 メインプロジェクトのアップデート
SpringOne Platform 2017報告会 メインプロジェクトのアップデート
 
Social Media Data
Social Media DataSocial Media Data
Social Media Data
 

More from 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
 

More from 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
 

Recently uploaded

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 

Recently uploaded (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

Twitter 研究会2012-1-28 - Twitter APIの紹介

  • 1. Twitter API 2012/01/28 Twitter4J - Copyright(c) Yusuke Yamamoto All rights reserved.
  • 2. @yusukey Copyright(c) Yusuke Yamamoto All rights reserved.
  • 4. Twitter API Copyright(c) Yusuke Yamamoto All rights reserved.
  • 5. Twi$er'API REST'API' ' ' ' ' ' ' ' ' ' :' ' API :'Java,'Objec8ve9C ' API Streamed'Tweets' ,' ' Java,'Python,'PHP,'Ruby,'Objec8ve9C ' Web API ' Web'Intents :'Web ' ' @Anywhere :'HTML,'JavaScript' Copyright(c) Yusuke Yamamoto All rights reserved. 5
  • 6. Twitter API Copyright(c) Yusuke Yamamoto All rights reserved.
  • 7. Twitter API • • OAuth • Copyright(c) Yusuke Yamamoto All rights reserved.
  • 8. • Twitter • • Copyright(c) Yusuke Yamamoto All rights reserved.
  • 9. • https://dev.twitter.com/apps/new Copyright(c) Yusuke Yamamoto All rights reserved.
  • 10. Application Type : Copyright(c) Yusuke Yamamoto All rights reserved.
  • 11. Read, Write, & Read & Write Read only Access direct messages ○ ○ ○ ○ ○ × ○ ○ × ○ × × Copyright(c) Yusuke Yamamoto All rights reserved.
  • 12. OAuth Copyright(c) Yusuke Yamamoto All rights reserved.
  • 13. Sign in with Twitter Copyright(c) Yusuke Yamamoto All rights reserved.
  • 14. XAuth Copyright(c) Yusuke Yamamoto All rights reserved.
  • 15. REST API Copyright(c) Yusuke Yamamoto All rights reserved.
  • 16. 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. 16
  • 17. Twitter REST API • 100 • 20 • Timeline http://api.twitter.com/statuses/***.json User http://api.twitter.com/users/***.json Direct message http://api.twitter.com/direct_messages/***.json Copyright(c) Yusuke Yamamoto All rights reserved.
  • 18. API Copyright(c) Yusuke Yamamoto All rights reserved.
  • 19. API • ‣ • https://twitter.com/#!/search-home Copyright(c) Yusuke Yamamoto All rights reserved. 19
  • 20. API • (GET) ‣ http://search.twitter.com/search.json?q=**** •q q: #twtr_hack q=#twtr_hack @yusukey #twtr_hack q=#twtr_hack+from:yusukey Copyright(c) Yusuke Yamamoto All rights reserved. 20
  • 21. Query query = new Query(term); query.rpp(100); do { QueryResult qr = twitter.search(query); tweets = qr.getTweets(); for (Tweet tweet : tweets) { // ... } if (tweets.size() != 0) { query.setMaxId(tweets.get(tweets.size() - 1).getId() - 1); } } while (tweets.size() != 0); rpp 100 page 15 1500 →max_id ok Twitter4J Copyright(c) Yusuke Yamamoto All rights reserved. 21
  • 22. API Copyright(c) Yusuke Yamamoto All rights reserved.
  • 23. API • DM • • REST API • • HTTP • • comet WebSocket Copyright(c) Yusuke Yamamoto All rights reserved.
  • 24. $ wget --output-document=- --user=*** --password=*** https:// stream.twitter.com/1/statuses/sample.json Copyright(c) Yusuke Yamamoto All rights reserved.
  • 25. API • Streamed Tweets • • User Stream • • Site Stream • Copyright(c) Yusuke Yamamoto All rights reserved.
  • 26. sample • 1% • (GET) ‣ https://stream.twitter.com/1/statuses/sample.json • ‣ • ‣ status json (REST API ) Copyright(c) Yusuke Yamamoto All rights reserved.
  • 27. sample • • ‣ ‣ ‣ • Copyright(c) Yusuke Yamamoto All rights reserved.
  • 28. FAQ • sample.json • % Copyright(c) Yusuke Yamamoto All rights reserved.
  • 29. filter • • (POST) ‣ https://stream.twitter.com/1/statuses/filter.json • ‣ follow, track, locations • ‣ status json (REST API ) Copyright(c) Yusuke Yamamoto All rights reserved.
  • 30. User Stream • • : • DM fav / follow • • OAuth( or XAuth) Copyright(c) Yusuke Yamamoto All rights reserved.
  • 31. Site Stream(beta) • • : Twitter • DM fav / follow • • OAuth Copyright(c) Yusuke Yamamoto All rights reserved.
  • 32. Site Stream • 100 • OAuth • • 1 1000 Copyright(c) Yusuke Yamamoto All rights reserved.
  • 33. • Site Stream {"control": { "control_uri":"/2b/site/c/1_1_54e345d655ee3e8d" }} • REST https://sitestream.twitter.com/2b/site/c/1_1_54e345d655ee3e8d" https://dev.twitter.com/docs/streaming-api/control-streams Copyright(c) Yusuke Yamamoto All rights reserved.
  • 34. • REST API Streaming API • gzip • • • 3G Copyright(c) Yusuke Yamamoto All rights reserved.
  • 35. FAQ • API JavaScript • • 1% • http://gnip.com/ • firehose • Copyright(c) Yusuke Yamamoto All rights reserved.
  • 36. Web API Copyright(c) Yusuke Yamamoto All rights reserved.
  • 37. Web Intents • Twitter <script type="text/javascript" src="http:// platform.twitter.com/widgets.js"></script> <a href="http://twitter.com/intent/retweet? tweet_id=163049746431348736"> </a> http://bit.ly/web-intents Copyright(c) Yusuke Yamamoto All rights reserved.
  • 38. @Anywhere • JavaScript Twitter Copyright(c) Yusuke Yamamoto All rights reserved.
  • 39. @Anywhere @yusukey <script type="text/javascript"> twttr.anywhere(function (T) { T.hovercards({expanded:true}); }); </script> http://bit.ly/hover-cards Copyright(c) Yusuke Yamamoto All rights reserved.
  • 40. Twitter Copyright(c) Yusuke Yamamoto All rights reserved.
  • 41. Copyright(c) Yusuke Yamamoto All rights reserved.
  • 42. Twitter development talk-ja http://bit.ly/tdt-ja • dev.twitter.com - Discussions https://dev.twitter.com/discussions Copyright(c) Yusuke Yamamoto All rights reserved.
  • 43. @twj_dev @twitterapi Copyright(c) Yusuke Yamamoto All rights reserved.
  • 44. Twitter API • http://amzn.to/iUeXjm Copyright(c) Yusuke Yamamoto All rights reserved. 44