play!框架

在昨天的个人黑客马拉松期间,我启动了一个项目,我可能会在这里介绍。 但是,最酷的启示是(再次)启动和运行起来有多么容易。

  1. 创建一个新的Play项目
  2. 添加Secure Social并为Twitter配置它,并使用示例中的InMemoryUserService。 (所有这些都在这里http://securesocial.ws/guide/getting-started.html进行了描述,仅需一分钟)
  3. 将Dependecy添加到twitter4j到您的Build.scala中,如下所示:
    'org.twitter4j'% 'twitter4j-core'% '3.0.3'
  4. 保护您的控制器操作方法,以强制使用Twitter进行(登录)身份验证。 请记住-因为您使用的是InMemoryUserService,所以不存储任何身份验证数据-您每次都必须重新连接。
    @SecureSocial.SecuredAction
  5. 然后,我添加了这些标准方法来获取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);
    }
  6. 然后,我在控制器中添加了一些代码以列出(例如)我的关注者
    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

play!框架

play!框架_在Play上使用twitter4j! 框架和安全社交很容易相关推荐

  1. vue ui框架_你为什么要使用前端框架Vue?

    1.前端框架的根本意义 1.1 前端框架的好处 最开始学习前端框架的时候(我第一个框架是 React)并不理解框架能带来什么,只是因为大家都在用框架,最实际的一个用途就是所有企业几乎都在用框架,不用框 ...

  2. rola物联网框架_如何搭建一个物联网系统框架?

    下面将谈到几个关键问题: 设备如何接入网络? 设备间如何通信? 物联网数据的用途? 如何搭建起一个物联网系统框架呢?它的技术架构又是怎么样呢? 物联网终端软件系统架构? 物联网云平台系统架构? 1.物 ...

  3. java rest框架_比较Java REST文档框架

    java rest框架 决定在记录REST API时选择哪种Java框架可能很麻烦. 在本博文中,我们将简要比较我们自己使用的REST Web服务的三个文档框架,以及它们如何与Spring框架(这是F ...

  4. mongodb 聚合框架_如何使用MongoDB的聚合框架处理高级数据处理

    mongodb 聚合框架 MongoDB has come a long way. Even though there are many NoSQL databases out there, Mong ...

  5. python深度学习include框架_用Python实现深度学习框架

    1.大咖推荐:复旦大学计算机学院教授邱锡鹏.品质科技创始人兼CEO袁进辉(@老师木).格灵深瞳创始人兼CEO赵勇.奇虎360集团副总裁邓亚峰联合推荐 2.干货满满:从零开始用Python实现自己的深度 ...

  6. python后端学什么框架_【后端开发】python框架是什么?有哪些?

    框架就是通过提供一个开发Web程序的基本架构,Python开发框架把PythonWeb程序开发摆到了流水线上.本篇文章将给大家介绍几款Python框架,有需要的朋友了解一下. Python开发框架有助 ...

  7. go语言mysql框架_超级详细:Go语言框架Gin和Gorm实现一个完整的待办事项微服务...

    前言 本文通过一步一步的设计,最终实现一个完善的todo应用. 我们使用GO框架Gin用户路由控制和返回数据.使用Gorm用于操作数据库. 读者可根据本教程操作,最终实现列出的各项功能. 技术清单 本 ...

  8. java jquery 框架_[Java教程]小谈Jquery框架

    [Java教程]小谈Jquery框架 0 2013-12-23 18:01:16 现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发 ...

  9. java 详解 搭建 框架_在Eclipse中搭建Struts框架过程详解

    虽然用MyEclipse搭建Struts框架是更为便捷的方式,但是用Eclipse可以增强自己对Struts的理解.本文演示了使用Eclipse搭建Struts 1.2框架的过程.此项目实现了简单的功 ...

最新文章

  1. Qt Style Sheet 翻译(中)--类似css
  2. 深度学习在其他领域的应用1:密码破解
  3. C语言之链表探究之单向链表(List)、附双向循环链表参考博文地址
  4. CMMI与Agile敏捷开发比较之二:需求管理篇(兼谈用敏捷实现和满足CMMI的ReqM过程域)...
  5. LeetCode 40. 组合总和 II(回溯)
  6. 该设备或资源(Web 代理)未设置为接受端口1080上的连接
  7. knowledge_based topic model - 基于知识的主题模型概述
  8. 2021qq服务器维护到什么时候,2021QQ扩列下架了吗怎么没了?QQ暂停服务到什么时候...
  9. 炫酷流光个人主页源码分享及在线部署教程
  10. 让老主板更新驱动程序不再拒绝新网卡(转)
  11. android 坐标度分秒转换工具,经纬度格式转换定位工具
  12. Linux之问题详解(一):Linux怎么创建一个html文件通过CentOS部署html网站到服务器
  13. 通知器(Notifier)
  14. IFA与“色“俱进,三星“量子点+曲面”如何掀起新变革?
  15. TabLayout的使用详解
  16. 西门子 PLC S7-1500 硬件配置—PLC编程
  17. 量子计算机与人脑接口,科技是把双刃剑,“脑机接口”的利与弊,让人细思极恐...
  18. Thread--线程让步yield
  19. 经典好用的软件,不容错过
  20. 13_Pyton之递归函数

热门文章

  1. 作为一名Java程序员,你竟然不知道Instrumentation
  2. 关于Tomcat与MySQL连接池问题的详解
  3. JVM运行时区域详解
  4. 三大框架题目整合考试题(含详解)
  5. Springboot 2.x 单元测试 JUnit 5
  6. AntDesignPro一次添加多条数据的表单字数限制,并且把input框变为可变文本框
  7. Android中ImageView的旋转与缩放
  8. linux的for循环怎么写,Linux命令:for循环写法总结
  9. php无限极菜单,无限极菜单的实现
  10. 1688推广工具_全面了解1688数字营销