SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
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
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Dernier (20)

Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
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
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

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