- 浏览: 360167 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (292)
- jbpm3.2 (4)
- hibernate (1)
- struts (2)
- spring (7)
- oracle (20)
- TCP/UDP (3)
- SpringSide (4)
- maven (4)
- eclipse插件 (11)
- 模板引擎 (2)
- javascript (4)
- 设计模式 (2)
- 工作中遇到异常及解决 (3)
- java文件编译问题 (1)
- ehcache应用 (1)
- java反射 (1)
- jbpm4 (1)
- Google-Gson (1)
- Jquery (6)
- XML (5)
- 工作记事 (2)
- flash builder 4 (1)
- Lucene (8)
- struts2 (1)
- AspectJ (1)
- spring proxool连接池配置 (1)
- StringUtils (1)
- spring security (5)
- JAVA点滴 (9)
- jbpm4.3 (1)
- ACL (0)
- 线程 (7)
- Java线程:新特征-线程池 (1)
- MemCache (5)
- compass (0)
- NIO (2)
- zookeeper (4)
- 并发 (2)
- redis (9)
- Nginx (5)
- jvm (1)
- 互联网 (24)
- shell (3)
- CAS (1)
- storm (4)
- 数据结构 (3)
- MYSQL (3)
- fsdfsdfsd (0)
- hadoop (19)
- hive (3)
- IntelliJ (3)
- python (3)
- 23423 (0)
- spark (7)
- netty (9)
- nmon (1)
- hbase (8)
- cassandra (28)
- kafka (2)
- haproxy (3)
- nodejs (3)
- ftp (1)
最新评论
-
记忆无泪:
遇到这个问题我用的sed -i 's/\r$//' /mnt/ ...
CentOS6 Shell脚本/bin/bash^M: bad interpreter错误解决方法 -
alenstudent:
Windows 下Nexus搭建Maven私服 -
dandongsoft:
lucene3+IK分词器 改造 lucene2.x+paoding -
duanyanrui:
学习了,支持
Google-Gson -
yscyfy:
这是你直接翻译过来的???
Google-Gson
说明:大家看到引用的包中有weibo2这个路径,这是我自己修改的,因为我的项目中有1.0的包,冲突了
上一篇讲sina的封装看到的webbo5j也是因为冲突才改的,希望大家不要误解
TuanDistributedHttpSession 这是封装的分布式session
MyUser 这是封装的一个User对象
腾讯提供的sdk中有代码错误,给大家看看
这是我修改过的,没修改之前是OAuthVersion == OAuthConstants.OAUTH_VERSION_1
这是一个小问题,估计也是刚毕业的写的
我在附件中会提供修改过的Jar包,直接用就行
public BasicAPI(String OAuthVersion){
if (OAuthVersion.equals(OAuthConstants.OAUTH_VERSION_1 )) {
requestAPI = new OAuthV1Request();
apiBaseUrl=APIConstants.API_V1_BASE_URL;
}else if(OAuthVersion.equals(OAuthConstants.OAUTH_VERSION_2_A)){
requestAPI = new OAuthV2Request();
apiBaseUrl=APIConstants.API_V2_BASE_URL;
}
}
package com.tuan.web.service.weibo;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;
import com.tencent.weibo2.api.FriendsAPI;
import com.tencent.weibo2.api.TAPI;
import com.tencent.weibo2.api.UserAPI;
import com.tencent.weibo2.oauthv2.OAuthV2;
import com.tencent.weibo2.oauthv2.OAuthV2Client;
import com.tencent.weibo2.utils.QHttpClient;
/**
* @Title: QQWeiBo2.java
* @Package com.tuan.web.service.weibo
* @Description: TODO(腾讯微博)
* @author longzhun
* @date 2012-7-30 上午09:36:00
* @version V2.0
*/
@Service
public class QQWeiBo2 {
private static final Log LOG = LogFactory.getLog(QQWeiBo2.class);
private OAuthV2 oAuth;
public QQWeiBo2(){
oAuth=new OAuthV2();
init();
}
public String getRequestToken(){
String authorizationUrl = "";
QHttpClient qHttpClient=new QHttpClient(2, 2, 5000, 5000, null, null);
OAuthV2Client.setQHttpClient(qHttpClient);
authorizationUrl = OAuthV2Client.generateAuthorizationURL(oAuth);
return authorizationUrl;
}
public OAuthV2 getAccessToken(OAuthV2 oAuth,String code,String openid,String openkey){
//检查是否正确取得授权码
if (oAuth.getStatus() == 2) {
LOG.error("Get Authorization Code failed!");
}
//换取access token
oAuth.setGrantType("authorize_code");
try {
OAuthV2Client.setAuthorization(code, openid, openkey, oAuth);
OAuthV2Client.accessToken(oAuth);
} catch (Exception e1) {
e1.printStackTrace();
}
//检查是否正确取得access token
if (oAuth.getStatus() == 3) {
LOG.error("Get Access Token failed!");
}
return oAuth;
}
public void pulishMsg(OAuthV2 oAuth,String status,String fileName) throws Exception{
TAPI tAPI=new TAPI(oAuth.getOauthVersion());//根据oAuth配置对应的连接管理器
if(StringUtils.isBlank(fileName)){
tAPI.add(oAuth, "json", status, "127.0.0.1");
}else{
tAPI.addPic(oAuth, "json", status, "127.0.0.1", fileName); //发布围脖
}
tAPI.shutdownConnection();
}
public void createFriend(OAuthV2 oAuth,String name) throws Exception{
FriendsAPI friendsAPI= new FriendsAPI(oAuth.getOauthVersion());
String checkData = friendsAPI.check(oAuth, "json", name, "", "2");
JSONObject responseJsonObject;
JSONObject dataJsonObject;
responseJsonObject= JSONObject.fromObject(checkData);
dataJsonObject=((JSONObject)responseJsonObject.get("data"));
String isidol = ((JSONObject)dataJsonObject.get(name)).get("isidol").toString();
if("false".equals(isidol)){
friendsAPI.add(oAuth, "json", name, ""); //添加关注
}
friendsAPI.shutdownConnection();
}
public MyUser getUserInfo(OAuthV2 oAuth,String name) throws Exception{
UserAPI userAPI= new UserAPI(oAuth.getOauthVersion());
String res = null;
weibo4j.org.json.JSONObject userData = null;
MyUser user = null;
if(StringUtils.isBlank(name)){
res = userAPI.info(oAuth, "json");
}else{
res = userAPI.infos(oAuth, "json", name, "");
}
weibo4j.org.json.JSONObject userJson = new weibo4j.org.json.JSONObject(res);
userData = userJson.getJSONObject("data");
System.out.println(userData);
if (userData != null){
user = new MyUser();
user.setId(userData.getString("openid"));
user.setUserName(userData.getString("name"));
user.setHuaming(userData.getString("nick"));
user.setLocation(userData.getString("location"));
user.setBirth(userData.getString("birth_year"));
user.setDescription(userData.getString("introduction"));
String head = userData.getString("head");
if (head != null && !"".equals(head))
user.setPicUrl((new StringBuilder(String.valueOf(userData.getString("head")))).append("/50").toString());
String sex = userData.getString("sex");
if (sex != null && !"".equals(sex))
user.setSex(Integer.valueOf(Integer.parseInt(sex)));
}
userAPI.shutdownConnection();
return user;
}
//ClientId,ClientSecret 大家自己去申请,这个我改动了 不能给大家用
public void init(){
oAuth.setClientId("801187117");
oAuth.setClientSecret("2d485d1c588849ca036452d78ad82bc4");
oAuth.setRedirectUri("http://www.55tuan.com/a/forwardQQweibo2.do");
}
public OAuthV2 getOAuth() {
return oAuth;
}
public void setOAuth(OAuthV2 auth) {
oAuth = auth;
}
}
@RequestMapping(value = "/bindQQ2",method=RequestMethod.GET)
public String bindQQ2(QueryForm queryForm, String goodsId,ModelMap modelMap, HttpServletRequest request,
HttpServletResponse response) {
String authorizationUrl = "";
try{
authorizationUrl = qqWeiBo2.getRequestToken();
TuanDistributedHttpSession session = new TuanDistributedHttpSession(request, response);
session.setAttribute("oAuth", qqWeiBo2.getOAuth());
}catch(Exception e){
e.printStackTrace();
logger.error("bindSina is error "+e,e);
}
return "redirect:"+authorizationUrl;
}
@RequestMapping(value = "/forwardQQweibo2")
public String forwardQQweibo2(QueryForm queryForm, String code,String openid,String openkey,
ModelMap modelMap, HttpServletRequest request,
HttpServletResponse response) throws Exception {
try{
TuanDistributedHttpSession session = new TuanDistributedHttpSession(request, response);
OAuthV2 oAuth = (OAuthV2)session.getAttribute("oAuth");
qqWeiBo2.getAccessToken(oAuth,code, openid, openkey);
qqWeiBo2.pulishMsg(oAuth,"封装完毕:Oauth2授权后发表一条带网络图片的微博", "http://ww1.sinaimg.cn/bmiddle/7e14fe22jw1dvbdwfyvpoj.jpg");
qqWeiBo2.createFriend(oAuth,"linariel");
MyUser user = qqWeiBo2.getUserInfo(oAuth, null);
System.out.println(user.getId());
}catch(Exception e){
logger.error("异常信息:"+e,e);
return "error";
}
return "error";
}
- qweibo-2.0.jar (63.8 KB)
- 下载次数: 146
发表评论
-
前谷歌/前facebook技术领袖揭露他为什么如此擅长编程。
2019-11-03 19:01 254前谷歌/前facebook技术领袖揭露他为什么如此擅长编程。h ... -
java移位运算
2015-06-04 15:24 969复习: 二进制转10进制 :要从右(低位)到左(高位) ... -
java 泛型详解
2015-04-25 13:54 385普通泛型 class Point<T>{ ... -
新浪微博Oauth2.0授权以及API调用封装
2012-07-27 16:00 2723网上有很多Oauth1.0的封装,但没Oauth2.0的,故我 ... -
对新浪,腾讯微博常用接口的统一封装
2012-07-20 23:20 809http://liudeh-009.iteye.com/blo ... -
新浪微博API(java版)
2012-07-20 23:12 1340新浪微博API(java版)================= ... -
java中HashMap详解
2012-06-26 11:55 773HashMap 和 HashSet 是 Java Coll ... -
instanceof 与isAssignableFrom
2011-10-26 10:53 1029instanceof 针对实例 isAssignableFro ...
相关推荐
Java,腾讯微博通过OAuth2.0授权,可发文本微博的示例源代码。
android 腾讯微博Oauth2.0认证以及自定义webview认证
【第三方开放平台系列】腾讯微博Oauth2.0授权认证-源码
新浪腾讯微博oauth2.0登录授权及转发实例
自己写的使用WebView授权DEMO 与上一版相比,该demo取消使用safari授权、取消使用asi进行http访问;同时保留了aes加密模块;增加了腾讯微博的授权,分享微博功能
asp.net 腾讯微博SDK OAuth2.0API接口,示例源码,登陆腾讯微博授权成功后可获得昵称、图像、OpenId,最新微博及粉丝等。100%可用,示例应用于 http://goupiaotong.com/login.aspx
对不起,我不得不给这个资源挂上分数,因为该死的CSDN非要折腾个这垃圾功能,我要下载别人的东西没积分没办法....这个里面包括代码,我整理的word笔记文档。 只是我觉得这远远不够,过几天我会录制一个视频,因为我...
IOS最新新浪微博开放平台Oauth2.0授权获取Access_Token的Demo
RT,使用WebView实现新浪微博Oauth2.0认证,非截取html代码获取验证码 界面跳转无副作用
微博Oauth2.0 协议,用java 实现单点登录获取用户信息。
RT,基于OAUTH2.0的腾讯微博认证以及发送微博,代码简洁易懂,方便童鞋们开发需要用到分享信息到腾讯微博功能的应用,具体教程可留意我的CSDN博客http://blog.csdn.net/geniuseoe2012
新浪微博OAuth2.0API源码 一个更方便,更快速的C#SDK,希望能帮助更多的朋友学习和使用 新浪微博OAuth2.0API使用流程: 1、根据需要求修改配置文件(Wbm.SinaV2.config)。 2、注册ApplicationKey。(参考...
本文档使用C#语言开发,MVC框架调用新浪微博第三方登录OAuth2.0接口。 详细介绍相关开发步骤信息。
一个更方便,更快速的-新浪微博 OAuth2.0 C# SDK,希望能帮助更多的朋友学习和使用
Java版|腾讯微博|OAuth2.0授权|官方方法|可发文本和图片|示例代码
实现新浪微博的OAuth2.0认证登陆,有自己找的资源,以及一些对自己帮助很大的网页,由于新浪微博不支持OAuth1.0了,所以把项目里的新浪微博登陆改为OAuth2.0了
新浪微博oauth认证源码,只要加入开发者自己的key与secret即可通过认证,进行相应的开发
新浪微博C#版SDK Demo 包含获取个人信息、获取会员好友信息、常用的api 分装集成。简单易懂,不管你是高手还是菜鸟都适用。
asp.net 网易微博 OAuth 2.0 实例源码 1.需要在http://open.t.163.com/ 申请一个帐号 2.获取Appkey,AppSecret 3.需要配置 oauth.config 填入相应的Appkey,AppSecret,原来上面的是我自己乱填的,所以测试需要填你...
通过点击viewbutton获取用户openid,实现方式oauth2.0认证