在昨天的个人黑客马拉松期间,我启动了一个项目,我可能会在这里介绍。 但是,最酷的启示是(再次)启动和运行起来有多么容易。
- 创建一个新的Play项目
- 添加Secure Social并为Twitter配置它,并使用示例中的InMemoryUserService。 (所有这些都在这里http://securesocial.ws/guide/getting-started.html进行了描述,仅需一分钟)
- 将Dependecy添加到twitter4j到您的Build.scala中,如下所示:
'org.twitter4j'% 'twitter4j-core'% '3.0.3'
- 保护您的控制器操作方法,以强制使用Twitter进行(登录)身份验证。 请记住-因为您使用的是InMemoryUserService,所以不存储任何身份验证数据-您每次都必须重新连接。
@SecureSocial.SecuredAction
- 然后,我添加了这些标准方法来获取Authenticated Twitter User,Token,Secret和twitter4J Connection :( tokenSecret,Token和当前User来自Secure Social Oauth1 Connection,用于验证Twitter Connection。
public static Twitter getTwitterInstance() { // The factory instance is re-useable and thread safe. TwitterFactory factory = new TwitterFactory(); Twitter twitter = new TwitterFactory().getInstance();twitter.setOAuthConsumer(Play.application().configuration() .getString('securesocial.twitter.consumerKey'), Play.application().configuration().getString('securesocial.twitter.consumerSecret')); twitter4j.auth.AccessToken accessToken = new twitter4j.auth.AccessToken(token(), tokenSecret()); twitter.setOAuthAccessToken(accessToken); return twitter; } public static String tokenSecret() { String retval = ''; scala.collection.Iterator iterator = Application.getCurrentUser().oAuth1Info().iterator(); while (iterator.hasNext()) { OAuth1Info oAuth1Info = iterator.next(); retval = oAuth1Info.secret(); } return retval; } public static String token() { String retval = ''; scala.collection.Iterator iterator = Application.getCurrentUser().oAuth1Info().iterator(); while (iterator.hasNext()) { OAuth1Info oAuth1Info = iterator.next(); retval = oAuth1Info.token(); } return retval; } public static Identity getCurrentUser() { return (Identity) ctx().args.get(SecureSocial.USER_KEY); }
- 然后,我在控制器中添加了一些代码以列出(例如)我的关注者
long cursor = -1; IDs ids; System.out.println('Listing following ids.'); do { ids = twitter.getFriendsIDs(cursor); for (long id : ids.getIDs()) { twitter4j.User twitterUser = twitter.showUser(id); twitterUsers.put(twitterUser.getScreenName(), new TwitterUser(id,twitterUser)); System.out.println(id); } } while ((cursor = ids.getNextCursor()) != 0);
是的,就是…
参考: 在Play上使用twitter4j! 通过Poornerd博客的JCG合作伙伴 Brian Porter 可以轻松实现Framework and Secure Social 。
翻译自: https://www.javacodegeeks.com/2013/03/using-twitter4j-with-play-framework-and-secure-social-is-this-easy.html