- 浏览: 371777 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (159)
- java world (63)
- php (12)
- ruby/python (0)
- web front (5)
- linux (4)
- db (1)
- 创业 (1)
- 生活 (13)
- 工作 (5)
- web (3)
- js uploader (1)
- java web (1)
- groovy (11)
- groovy sql (1)
- groovy swingbuilder (0)
- groovy antbuilder (1)
- json jquery (1)
- dom html (1)
- java punit (1)
- websql (1)
- 移动 (2)
- angularjs (2)
- 团购 java groovy (1)
- groovy watch dog (1)
- web karma seajs (1)
- angularjs primeui (1)
- groovy http test (1)
- golang (1)
- gradle (1)
- groovy linux (1)
最新评论
-
tongfan:
有能跑起来的demo么?? 按照你的思路 和代码 做的de ...
通过bean parser实现spring scan groovy文件装载bean -
zhangyuxidd:
谢谢分享,好东西
下载了人家的数据——中国行政区编码(电话,区号等),分享一下 -
逍遥道人:
谢谢博主的慷慨分享,谢谢!
下载了人家的数据——中国行政区编码(电话,区号等),分享一下 -
noyce520:
给这种精神 赞一个。csdn老要分,,烦死了
下载了人家的数据——中国行政区编码(电话,区号等),分享一下 -
wwwqqeew:
LoveStart 写道
纯js实现浏览器图片选择预览、旋转、批量上传
目的:如题。。。
准备工作:
1.找一个现成的OAuth的Java客户端包——我选择scribe,版本1.2,在http://oauth.net/code/上下载。
2.准备QQ开放平台的文档说明,以在实践的过程中查阅参考。
3.在http://connect.opensns.qq.com/上申请一个登陆的app_id。(其中登陆那个callback url是死的,不好调试,可以修改hosts加上proxy到你的服务器端口)
QQ开放平台的文档说明具体为
开始弄一个工程,可以是本地的,也可以是web的:(以web为例)
代码如下:
package test import org.scribe.model.* import org.scribe.oauth.* import dz.oauth.* import org.scribe.model.* import org.scribe.oauth.* import org.scribe.builder.* import org.dy.web.core.* import org.dy.tool.* class TestOAuth extends Action { String app_id = 'xxx' String app_key = 'xxx' String callback = 'http://localhost:8087/test/test_oauth/callback.gy' public Map init(){ } def Map test_qq(){ OAuthService service = new ServiceBuilder().provider(QqzoneApi.class).apiKey(app_id) .apiSecret(app_key).callback(callback).signatureType(SignatureType.QueryString).build() Token req_token = service.getRequestToken() String auth_url = service.getAuthorizationUrl(req_token) + '&oauth_callback=' + callback + '&oauth_consumer_key=' + app_id return [v:'redirect:' + auth_url, s_secret:req_token.secret] } def Map callback(){ String todo_url = 'http://openapi.qzone.qq.com/user/get_user_info' OAuthService service = new ServiceBuilder().provider(QqzoneApi.class).apiKey(app_id) .apiSecret(app_key).callback(callback).signatureType(SignatureType.QueryString).build() Token req_token = new Token(params.oauth_token, params.s_secret) Verifier verifier = new Verifier(params.oauth_vericode) Token access_token = service.getAccessToken(req_token, verifier) def mat = access_token.getRawResponse() =~ /openid=([^&]+)/ String openid = mat[0][1] OAuthRequest treq = new OAuthRequest(Verb.GET, todo_url) treq.addQuerystringParameter('openid', openid) service.signRequest(access_token, treq) Response response = treq.send() return [output:response.getBody()] } }
然后就接上
Step4:Qzone引导用户跳转到第三方应用
然后就可以根据获取的临时token和openid去调用你想调用QQ开放出来的api了——
http://wiki.opensns.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91API%E6%96%87%E6%A1%A3
特别说明:
1.scribe这个包针对QQ的oauth有的verifier需要修改下
OAuth10aServiceImpl.getAccessToken()
// QQ if(this.api.getClass().getName().indexOf("QqzoneApi") != -1) request.addOAuthParameter(OAuthConstants.VERIFIER_QQ, verifier.getValue()); else request.addOAuthParameter(OAuthConstants.VERIFIER, verifier.getValue());
2.令附上QqzoneApi.java的代码(我用groovy写的,一样)
package dz.oauth import org.scribe.builder.api.* import org.scribe.model.* /* Depends on scribe.jar */ public class QqzoneApi extends DefaultApi10a { static final String AUTHORIZATION_URL = "http://openapi.qzone.qq.com/oauth/qzoneoauth_authorize?oauth_token=%s" public String getAccessTokenEndpoint(){ return 'http://openapi.qzone.qq.com/oauth/qzoneoauth_access_token' } public String getRequestTokenEndpoint(){ return 'http://openapi.qzone.qq.com/oauth/qzoneoauth_request_token' } public Verb getAccessTokenVerb(){ return Verb.GET; } public Verb getRequestTokenVerb(){ return Verb.GET; } public String getAuthorizationUrl(Token requestToken) { return String.format(AUTHORIZATION_URL, requestToken.getToken()) } }
3.SignatureType 记得是QueryString的
华丽的分割线***************************
哎——不喜欢脚本的java童鞋们啊,我花十几分钟弄一个tomcat应用,再贡献出来我的appid,你们下载源码看吧(Tomcat war)。至于callback里转发的,麻烦你的hosts文件里指定下
hosts:
127.0.0.1 www.echanging.com
127.0.0.1 echanging.com
apache vhost:
<VirtualHost 127.0.0.1>
ServerAdmin segment11@gmail.com
DocumentRoot "E:/Program/workspace/oauth-qq-demo"
ServerName www.echanging.com
ServerAlias echanging.com
ErrorLog logs/echanging.error_log
CustomLog logs/echanging.log common
<Directory "E:/Program/workspace/oauth-qq-demo">
AllowOverride all
Allow from all
</Directory>
ProxyPass /oauth-qq-demo http://localhost:8080/oauth-qq-demo
ProxyPassReverse /oauth-qq-demo http://localhost:8080/oauth-qq-demo
</VirtualHost>
够详细了吧——再搞不定,我就吐血了——
- oauth-qq-demo.rar (139.1 KB)
- 下载次数: 479
评论
当然可以,模拟http啊。
问题的关键的申请的时候必须要你填写网站域名这些,要实现要运用软件这一步,模拟http就麻烦了
当然可以,模拟http啊。
我刚弄好,这个还要找sdk啊?
腾讯的文档写的很清楚的。。。
oauth是有规范的好不——你也可以自己模拟http get url,一样的,只不过oauth这么搞,那些以oauth开放出来的平台资源访问起来,就一致了么。
其实就是模拟http请求,加上加密——本来一个简单至极的东西大家别被迷惑了。
我刚弄好,这个还要找sdk啊?
腾讯的文档写的很清楚的。。。
我正在规划优化代码,移除所有的依赖。
class TestOAuth extends Action { String app_id = 'xxx' String app_key = 'xxx' String callback = 'http://localhost:8087/test/test_oauth/callback.gy' public Map init(){ } def Map test_qq(){ OAuthService service = new ServiceBuilder().provider(QqzoneApi.class).apiKey(app_id) .apiSecret(app_key).callback(callback).signatureType(SignatureType.QueryString).build() Token req_token = service.getRequestToken() String auth_url = service.getAuthorizationUrl(req_token) + '&oauth_callback=' + callback + '&oauth_consumer_key=' + app_id return [v:'redirect:' + auth_url, s_secret:req_token.secret] }
我没看懂,def Map 这是什么语言,你这个javac可以编译通过吗!!!!!!!!!!!!!
吐血啊——我也弄一个和douyu类似的mvc框架——不过是基于groovy的,用spring mvc原语表达这一段代码就是:
class MyController extends AbstractController{
@Path('')
public ModelAndView testQq(){
// set session attribute and redirect response
}
public ModelAndView callback(){
// get session attribute value and ....
}
}
class TestOAuth extends Action { String app_id = 'xxx' String app_key = 'xxx' String callback = 'http://localhost:8087/test/test_oauth/callback.gy' public Map init(){ } def Map test_qq(){ OAuthService service = new ServiceBuilder().provider(QqzoneApi.class).apiKey(app_id) .apiSecret(app_key).callback(callback).signatureType(SignatureType.QueryString).build() Token req_token = service.getRequestToken() String auth_url = service.getAuthorizationUrl(req_token) + '&oauth_callback=' + callback + '&oauth_consumer_key=' + app_id return [v:'redirect:' + auth_url, s_secret:req_token.secret] }
我没看懂,def Map 这是什么语言,你这个javac可以编译通过吗!!!!!!!!!!!!!
官方已经给了http://code.google.com/p/open-qq/
代码我都读过,感觉用我这种scribe的形式,依赖包少些,还不错(尤其是httpclient,现在URLConnection已经很不错的)。
发表评论
-
通过bean parser实现spring scan groovy文件装载bean
2016-04-28 10:54 2014Spring使用groovy作为bean,官方用了lang标 ... -
只是自己放东西以供下载。。。
2011-10-19 20:32 0-jar E:/Program/node/jstd/JsT ... -
动态语言+约定,剩下的只需要文件系统就够了
2011-09-02 09:54 186最近在工作中一直用jdk1 ... -
jdk6的httpserver小试
2011-07-28 17:04 1696网上一堆例子,个人做一个,有下载,可以用模板的小例子。(Gro ... -
热切推荐对groovy感兴趣看这位老兄的blog
2011-07-08 22:21 1408解除groovy有很久一段时间了,自认为对groovy还是蛮了 ... -
Jdk不同版本编译时候碰到BigDecimal执行错误
2011-07-02 23:46 2239如果不是工作环境遇到,我估计自己肯定不会碰到和去查这样的问题的 ... -
groovy做单元测试(包括对groovy/java测试),如何集成到你现有的java项目中去
2011-06-06 01:43 1581标题党—— 1. 至于如何用groovy写现有java ... -
发布一个项目——Increx
2011-04-21 18:17 291翻翻以前写的blog的Title, 1. ... -
用Groovy做基于web的自动crud,比你想象得要简单得多
2011-04-18 17:22 1586如果你只是玩过play!或grails里演示crud的demo ... -
Groovy不是这么用的(或者说不一定这么用就是最好的)
2011-04-12 15:46 0一次面试,聊技术涉及到groovy时候,他提到几个问题: ... -
Java求职者——想说服技术主管你这个Javaer比其他Javaer强,难啊
2011-03-31 15:46 500接到一面试电话—— 简单了解点java基础和we ... -
刚阿里电面——被深深的BS了
2011-03-29 14:20 3812RT—— 有好多问题或涉及到的知识点由于基础不牢固—— ... -
基于JQuery和Base的一个WebOS的雏形——配合基于Java的服务端
2011-03-29 00:31 2658有个很模糊的录像,大家感兴趣的,先看下。 自己最近写写 ... -
最近面试时候碰到的算法题目,自己写一下,顺便和大家交流下groovy的语法糖
2011-03-21 13:51 1470题目都比较简单——用什么语言写,都不是重点——笔试中我都是狂省 ... -
Groovy——上了一个当——把String当List用
2011-03-09 16:21 165String str = '20001010' printl ... -
GAE上用H2结合Groovy——外推荐下我自己写的GAE用的框架
2011-02-23 15:46 1051见附件。eclipse工程(需要google sdk的)。 ... -
对于基于java的小型web应用部署方式感到失望。。
2011-01-11 19:51 329总是离不开servlet container和一个http / ... -
利用永中Office实现Word/Excel/PPT PDF转换
2010-12-25 00:28 1001这个思路挺酷的么? 再加上FlexPaper,在互联网 ... -
一些门户或平台网站的数据获取与分析——以淘宝为例
2010-12-24 21:31 3623RT——在大家做网站或GUI的业余时间,可能你会碰到这样的需求 ... -
自动投票——种种
2010-11-04 00:46 1216最近闲余时间做了一些功能——主角本来是php的curl ext ...
相关推荐
java毕业设计——基于java的QQ屏幕截图工具的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——基于java的QQ屏幕截图工具的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——基于java的QQ...
java毕业设计——基于Java的QQ屏幕截图工具的设计与实现(论文+答辩PPT+源代码+讲解视频).zip java毕业设计——基于Java的QQ屏幕截图工具的设计与实现(论文+答辩PPT+源代码+讲解视频).zip vjava毕业设计——基于...
【Java实习报告——山寨QQ聊天工具设计】 这份实习报告详细记录了一个基于Java的简易聊天系统的开发过程,项目名为"My_QQ",旨在模仿QQ的基本功能,包括登录、注册、单人及多人聊天,并且退出应用。这个项目是针对...
操作系统,页面置换LRU。。。。。。。。。。。。。。。。。。
综上所述,"Java开发——qq图片.zip"的资源可能涵盖了Java GUI设计、图片加载与处理、布局管理等多个方面,对于学习和实践Java桌面应用或移动应用的UI开发具有很大的参考价值。通过深入理解这些知识点,开发者可以...
通过深入学习以上知识点,并结合"java网络编程--qq聊天程序"的项目实践,你将能够构建自己的网络聊天应用程序,理解JAVA WEB编程的核心技术和QQ聊天程序的实现原理。同时,不断研究和实践新技术,提升你的编程能力和...
适合复习java进阶
本项目是一个Java毕业设计,主要目标是开发一个基于Java的QQ屏幕截图工具。这个工具能够帮助用户方便快捷地捕获并处理屏幕上的图像,模仿QQ的截图功能,提供了一种实用的桌面应用体验。设计与实现的过程涵盖了软件...
综上所述,实现“java——农历表达类”涉及到的不仅仅是编写代码,还包括对日期处理的理解、类设计、用户交互、异常处理、测试验证等多个方面的知识。在实际开发中,应确保代码的清晰性和可维护性,同时兼顾性能和...
* 项目名:Java课程设计——饭卡管理系统(JavaSwing、JavaFX、MySQL) * @author :第四维度 * 创建时间:2021-6-21 * 采用JavaSwing、JavaFX设计UI界面,结合MySQL数据库进行增删改查操作,功能较为完善 * 包含...
"安卓Android源码——高仿QQ登陆.zip"是一个针对Android平台的源码项目,旨在帮助开发者学习和模仿QQ登录界面的设计与实现。这个压缩包包含了TestLogin模块,我们可以从中抽取出一系列关于Android开发的知识点。 1....
《山寨版QQ——Java实现详解》 在信息技术领域,编程语言的选择往往决定了软件的特性和应用范围。Java作为一门跨平台、面向对象的编程语言,因其强大的可移植性和丰富的类库,深受开发者喜爱。本篇文章将围绕一个...
项目标签"java_qq_login"和"qq_login_java"明确了项目的核心技术——使用Java进行QQ登录界面的实现。这意味着开发者可能使用了Java的事件监听机制,例如ActionListener,来处理按钮点击事件,触发登录验证逻辑。登录...
《Head First Java》是伯克利大学CS61B课程推荐的一本经典的Java学习教程,尤其适合初学者。这本书以其独特的“Head First”教学风格,将复杂的编程概念以易理解、生动有趣的方式呈现,帮助读者快速掌握Java编程基础...
需要本地安装JDK并配置JAVA环境变量。 之后使用java -jar jca469.jar即可打开工具。 直接将dump出来的堆栈信息,打开,便可分析。
Java中的`Graphics`类是Java 2D API的核心部分,用于在Java图形用户界面(GUI)上进行绘制。`Graphics`类提供了各种方法,如绘制直线、曲线、文本、图像等基本图形。在这个讨论中,我们将深入理解Java GUI重绘机制、...
定义人员(staff)类,从person类派生,至少包括电话、地址、邮政编码、邮箱、QQ号和类别(例如:同学、朋友等)。 功能设计: 1、设计菜单实现功能选择; 2、输入功能:输入人员信息,并保存到文件中; 3、查询...
本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做...
在IT行业中,编程语言Java因其跨平台性和丰富的库支持,被广泛应用于各种系统开发,包括网络通信应用。本项目以“java实现的简单qq功能”为主题,旨在介绍如何使用Java来构建一个类似QQ的即时通讯工具,具备在线聊天...