Más contenido relacionado
Similar a エンタープライズアプリケーション とTwitterの連携 (20)
Más de Yusuke Yamamoto (20)
エンタープライズアプリケーション と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
- 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
- 16. Web API
• Web Intents
‣ Twitter
‣
• @Anywhere
‣ JavaScript Twitter
‣
Copyright(c) Yusuke Yamamoto All rights reserved. 16
- 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
- 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
- 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
- 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