在Play上使用twitter4j! 框架和安全社交很容易

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

  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. 屏幕截图2013年2月1日的14.54.45

  5. 保护您的控制器操作方法,以强制使用Twitter进行(登录)身份验证。 请记住-因为您使用的是InMemoryUserService,所以不存储任何身份验证数据-您每次都必须重新连接。
    @SecureSocial.SecuredAction
  6. 然后,我添加了这些标准方法来获取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);
    }
  7. 然后,我在控制器中添加了一些代码以列出(例如)我的关注者
    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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 冒泡排序三种写法

需求:输入 n 个整数并将这些数字以从大到小和从小到大的顺序输出代码如下:bubble_sort_v1 1 #coding:utf-82 #__author__ Diva3 4 # 升序(从小到大)5 SORT_TYPE_ASC 16 # 降序(从大到小)7 SORT_TYPE_DE…

ptmalloc内存分配和回收详解(文字版)

ptmalloc内存分配和回收详解(文字版) 进程默认内存布局(x86) 从进程的内存布局可知,.bss段之上的这块分配给用户程序的空间被称之为heap,start_brk指向heap的开始,而brk指向heap的顶部。可以使用…

linux nfs

linux(十四)之linux NFS服务管理学到这里差不多就结束了linux的基础学习了,其实linux的内容并不难,我们要经常的反复的去操作它,多多和它去联络感情才能很好的掌握这个linux。 加油!今天是星期二。没有什么…

下来安成功 打开一直白屏_推广人透露:戈洛夫金2021年可能与安德拉德上演拳王统一战...

IBF中量级拳王根纳季-戈洛夫金(Gennadiy Golovkin)随着本月摧毁强制挑战者卡米尔-塞泽梅塔(Kamil Szeremeta),使得下一场比赛在对手选择问题上,具有很大的自由度。戈洛夫金的推广人埃迪-赫恩做客Sirius XM访谈时,透露了一个重要消息&#xff…

WEB接口测试之Jmeter接口测试自动化 (四)

Jmeter是压力测试、接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具。将这三者结合起来可以搭建一套webservice接口测试的持续构建环境。 1、安装JDK,配置java环境变量(略过&#xff09…

dnf机器人猜数字奖励_DNF:周年庆策划啪啪打脸,工作人员也出错误,难道又是临时工的锅?...

本来应该是很喜庆的一天,结果又遇见了策划啪啪打脸的事情,关键还连累玩家提心吊胆的。往年都是登录游戏送豪礼,今年策划就像搞点不一样,估计是认为今年送的“即时”史诗比较多吧。然后就很任性的在领取豪礼之前添加了一道“礼物申…

练习 3.16

如题:下面是某大学数据库的一组需求,此数据库用于记录学生的成绩,这与图1.2所示数据库类似,但并不完全相同。 a. 大学要记录每个学生的姓名、学号、社会保险号、当前地址与电话、永久地址与电话、出生日期、性别、年级&#xff08…

中国连计算机硬盘都无法生产吗,中国仍无能力制造出电脑中的硬盘

从最开始的40GB到现在的3TB甚至更大,硬盘技术已经发生了突飞猛进的发展,就连以往高高在上的SSD固态硬盘也从去年开始展现出大容量普及的趋势。但是,至今为止我们为何没有看到一款国产品牌的硬盘杀入市场呢?今日头条中一篇文章或许…

d3 i5 神舟精盾k480n_6款神舟精盾轻薄记本发布,10nm十代酷睿,匠心打造国潮好本...

神舟电脑新品:神舟精盾发布会已于2019年10月31日上午在深圳神舟电脑大厦招开,此次发布会一共发布了6款精盾系列的轻薄笔记本。 此次还有英特尔、英伟达、微软等重量级合作伙伴的大咖站台助力,神舟电脑产品总监王小陈先生、神舟电脑创新一部销…

css中border制作各种形状

css利用border制作各种形状的原理如图: 使用border绘制三角形是什么原理?事实上,宽度相等的border是以45度对接的,如下图: 没有了上border如图所示: 再设置border的宽度为0: 设置border的高度为0&#xff…

2016 linux发行版排行_选择困难症必看!云服务器如何选择操作系统,Windows和Linux哪个更好?...

在购买云服务器时,会有一个必选的配置,就是操作系统的选择,如何选择操作系统?操作系统选择错了怎么办?这是不少用户会遇到的问题,今天我们就来教大家如何选择操作系统,以及操作系统选择错了&…

怎样不通过高考进入清华计算机系,山东高考状元孟令昊澄清,没有参加政审,已经填报清华计算机系!...

原标题:山东高考状元孟令昊澄清,没有参加政审,已经填报清华计算机系!说到高考状元,其实每年在高考分数公布以后和志愿填报的时候,他们都是大家最为关注的群体,特别是对于这些状元的去向成为了很…

DOM BOM document window 区别

DOM 是为了操作文档出现的 API,document 是其的一个对象; BOM 是为了操作浏览器出现的 API,window 是其的一个对象。 使用下图讲解: 归DOM管的: E区:即document 归BOM管的: A区:浏览…

D2

依托 Weex 的能力,轻舟平台使得前端开发人员可以基于 Vue 或者 Rax(类 React)开发媲美原生的 App。 不需要学习各类 Native 开发语言;不需要搭建复杂的编译打包环境,轻舟提供的一站式集成开发解决方案全部帮你搞定。吴…

hibernate5--主键生成策略

1、hibernate自己维护主键的值。首先获取该表中最大主键值&#xff0c;然后加一插入。主键字段对应的属性类型可以是int、short、long以及其封装类型。在高并发或者集群的情况下不能使用。 2、identity&#xff1a;使用数据库自身自增长来维护。 <id name"id" col…

vue watch 第一次不执行_Vue 实现前进刷新,后退不刷新的效果

https://github.com/woai3c/Front-end-articles​github.com需求一&#xff1a;在一个列表页中&#xff0c;第一次进入的时候&#xff0c;请求获取数据。点击某个列表项&#xff0c;跳到详情页&#xff0c;再从详情页后退回到列表页时&#xff0c;不刷新。也就是说从其他页面进…

win8计算机安全模式,安全模式,详细教您Win8怎么进入安全模式

电脑的用途在我们的日常生活之中体现的是最为突出了&#xff0c;比方说网上购物、看电视、玩游戏、做文件什么的都用得着电脑。但是有用户遇到了Win8系统按F8无法进入安全模式怎么办&#xff1f;非也&#xff0c;非也&#xff0c;下面&#xff0c;小编给大家带来了Win8进入安全…

elasticsearch-6.0.1安装

elasticsearch-6.0.1安装 0. 介绍&#xff1a;ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff1b;是目前全文搜索引擎的首选。Elastic 的底层是开源库 Lucene。但是&#xff0c;没法直接用 Lucene&#xff0c;必须自己写代码…

使用GlassFish 4.0测试驱动Java API以处理JSON

编写规范并为其做出贡献是一回事。 如果您想提供宝贵的反馈意见&#xff0c;请使用它并研究真实的示例。 最新推广的GlassFish构建包含重命名为4.0&#xff0c;我认为现在是对Java处理JSON&#xff08;JSON-P&#xff09;API进行测试的好时机。 获取启用了Java EE 7的GlassFis…

查询已有链表的hashmap_原创 | 面试不再慌,看完这篇保证让你写HashMap跟玩一样...

点击上方蓝色小字&#xff0c;关注“码农小黑屋”重磅干货&#xff0c;第一时间送达今天这篇文章给大家讲讲hashmap&#xff0c;这个号称是所有Java工程师都会的数据结构。为什么说是所有Java工程师都会呢&#xff0c;因为很简单&#xff0c;他们不会这个找不到工作。几乎所有面…