网上有很多Oauth1.0的封装,但没Oauth2.0的,故我就封装了2.0的给大家分享
weibo5j这个是个自己修改的,因为项目中有1.o的包,冲突了
package com.tuan.web.service.weibo;
import org.springframework.stereotype.Service;
import com.tuan.web.service.weibo.util.WeiboUtils;
import weibo5j.Account;
import weibo5j.Friendships;
import weibo5j.Oauth;
import weibo5j.Timeline;
import weibo5j.Users;
import weibo5j.Weibo;
import weibo5j.http.AccessToken;
import weibo5j.model.User;
import weibo5j.model.UserWapper;
import weibo5j.model.WeiboException;
import weibo5j.org.json.JSONObject;
/**
* @Title: SinaWeiboV2.java
* @Package com.tuan.web.service.weibo
* @Description: TODO(新浪围脖)
* @author longzhun
* @date 2012-7-27 下午03:01:23
* @version V2.0
*/
@Service
public class SinaWeiboV2 {
private Weibo weibo;
private Oauth oauth;
public SinaWeiboV2(){
oauth = new Oauth();
weibo = new Weibo();
}
/**
* 设置accesstoken
*/
public void setToken(String code) throws WeiboException{
AccessToken token = oauth.getAccessTokenByCode(code);
weibo.setToken(token.getAccessToken());
}
public String getRequestToken() throws WeiboException{
return oauth.authorize("code");
}
/**
* 根据用户id获取用户信息
*/
public User getUserInfo(String uid) throws WeiboException{
Users user = new Users();
User userInfo = user.showUserById(uid);
return userInfo;
}
/**
* 获取用户Id
*/
public String getUserId() throws Exception{
Account am = new Account();
JSONObject json = am.getUid();
if(json == null){
return "";
}
return json.getString("uid");
}
/**
* 添加关注
*/
public void createFriend(String uid) throws WeiboException{
Friendships fm = new Friendships();
UserWapper friend= fm.getFollowersById(uid);
if(friend == null){
fm.createFriendshipsById(uid);
}
}
/**
* 发布围脖
*/
public void publicMsg(String status,String fileName) throws Exception{
Timeline tm = new Timeline();
if (fileName == null || "".equals(fileName)){
tm.UpdateStatus(status);
}else{
byte[] imageBytes = WeiboUtils.readFileImage(fileName);
weibo5j.http.ImageItem item = new weibo5j.http.ImageItem(imageBytes);
tm.UploadStatus(status, item);
}
}
}
/**
* @Title: WeiboUtils.java
* @Package com.tuan.web.service.weibo.util
* @Description: TODO(添加描述)
* @author longzhun
* @date 2012-7-23 下午07:36:10
* @version V1.0
*/
public class WeiboUtils {
public static byte[] readFileImage(String filename)throws IOException{
URL url = new URL(filename);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.connect();
InputStream inStream = conn.getInputStream();
ByteArrayOutputStream outsStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
while((len = inStream.read(buffer))!=-1){
outsStream.write(buffer,0,len);
}
outsStream.close();
inStream.close();
return outsStream.toByteArray();
}
}
@RequestMapping(value = "/bindSina2",method=RequestMethod.GET)
public String bindSina2(QueryForm queryForm, String goodsId,ModelMap modelMap, HttpServletRequest request,
HttpServletResponse response) {
String returnurl = "";
try{
returnurl = sinaWeiboV2.getRequestToken();
}catch(Exception e){
e.printStackTrace();
logger.error("bindSina is error "+e,e);
}
return "redirect:"+returnurl;
}
@RequestMapping(value = "/forwardSinaweibo2")
public String forwardSinaweibo2(QueryForm queryForm, String code,ModelMap modelMap, HttpServletRequest request,
HttpServletResponse response) throws Exception {
try{
sinaWeiboV2.setToken(code);
String uid = "1730077315";
sinaWeiboV2.getUserId(); //获取用户Id 绑定窝窝账号
sinaWeiboV2.createFriend(uid); //添加关注
sinaWeiboV2.publicMsg(URLEncoder.encode("封装完毕:新浪围博客Oauth2.0","UTF-8"),
"http://ww1.sinaimg.cn/bmiddle/7e14fe22jw1dvbdwfyvpoj.jpg
"); //发布围脖
}catch(Exception e){
logger.error("异常信息:"+e,e);
return "error";
}
return "error";
}
分享到:
相关推荐
本文将深入探讨如何使用C#语言结合新浪微博OAuth2.0 SDK,实现对微博数据的获取和操作,以及通过提供的Demo来理解和实践这个过程。 首先,OAuth2.0是一种授权框架,它允许第三方应用在用户授权的情况下访问其存储在...
5. **saetv2.ex.class.php**:可能是一个封装了新浪微博API调用的类库,包含了处理OAuth2.0逻辑的函数。 6. **logout.php**:注销功能,允许用户撤销对客户端的授权。 在实际操作中,`index.php`会先展示一个登录...
本文将深入探讨如何在Android平台上使用新浪提供的API,特别是基于OAuth2.0授权机制的Android版新浪微博API。这个API允许开发者构建应用程序,与微博用户进行互动,包括发布和获取微博信息、管理用户关注关系、获取...
在当今互联网时代,社交媒体平台扮演着至关重要的角色,其中新浪微博作为中国的一大社交巨头,为开发者提供了丰富的API接口和SDK工具,便于开发者构建与微博平台深度集成的应用。本文将详细介绍“新浪微博SDK2.0”,...
总之,使用OAuth2.0和C#开发新浪微博客户端涉及了网络请求、JSON解析、授权流程和错误处理等多个环节。理解这些概念和技术,不仅可以帮助你完成这个项目,还能为其他OAuth2.0服务的集成提供借鉴。
Java调用新浪微博API接口是Java开发者与社交媒体进行交互的一个常见任务,主要涉及到网络请求、OAuth2.0授权机制以及微博平台提供的各种API服务。这里,我们深入探讨一下这个主题。 首先,`weibo4j-oauth2`这个...
2. 拼接授权URL:根据腾讯微博的OAuth2.0协议,构建授权请求的URL,包含App ID、回调地址、权限范围等参数。 3. 用户授权:引导用户跳转到上述URL,用户在腾讯微博上确认授权。 4. 获取授权码:用户授权后,腾讯微博...
weibo4j是专为新浪微博设计的一个开源Java SDK,它封装了API接口,方便开发者调用。 在文件名"weibo4j-oauth2"中,我们可以推断出源代码可能包含了使用OAuth2.0协议获取和使用token的逻辑。OAuth2.0是一种授权框架...
通常,这包括设置API的URL、认证信息(如OAuth2.0授权)以及发送HTTP请求的方法。 描述中提到“可以修改成自己所需要的数据”,这意味着这个实例不仅展示了基本的调用过程,还可能涉及数据筛选和定制化处理。在获取...
OAuth2.0是一种流行的授权协议,被广泛应用于各种互联网服务中,包括新浪微博API。它的主要作用是在不暴露用户密码的情况下,允许第三方应用请求访问用户在微博平台上的资源或数据。OAuth2.0通过一系列的安全流程,...
总之,实现“新浪微博登录织梦cms”的功能,需要开发者具备PHP编程、OAuth2.0授权机制、以及织梦CMS的二次开发能力。同时,为了保障用户数据的安全,还需要遵循最佳实践,例如加密存储敏感信息,合理设置Access ...
总结起来,实现新浪微博一键分享功能,开发者需要对OAuth2.0授权机制有基本了解,熟悉微博开放平台的API接口,以及如何使用SDK进行集成。同时,良好的用户体验设计也是关键,如在分享过程中保持流畅,错误处理及时且...
综上所述,接入新浪微博涉及的Android知识点包括:Android SDK基础、OAuth授权、网络通信(HTTP库的使用)、API调用、用户体验设计、版本兼容性和缓存策略。通过深入理解和实践这些技术,开发者可以成功地在自己的...
在IT行业中,控制台应用程序是开发人员经常使用的...这涉及到C#的基础知识、API的理解、OAuth2.0授权流程以及新浪SDK的使用。通过学习和实践这样的例子,开发者可以进一步提升自己的技能,实现与更多在线服务的集成。
通过这个SDK和Demo,开发者不仅可以学习如何在Android应用中整合微博服务,还能了解OAuth2.0授权机制以及如何与开放平台进行交互。这为开发者提供了丰富的功能,同时也为用户带来了社交体验的无缝连接。
新浪微博提供了OAuth 2.0授权机制,允许开发者获取用户的授权并进行数据操作。而QQ微博同样采用OAuth 2.0,为开发者提供了一套完整的SDK,包括登录、分享等功能。 1. **OAuth 2.0授权流程**: - 用户打开应用,...
总之,要在Android应用中实现新浪微博登录,开发者需要理解OAuth2.0授权机制,熟悉新浪提供的SDK,并能正确处理登录过程中的各种细节。通过参考博客和示例代码,可以有效地完成这一任务。同时,了解并遵守第三方平台...
6. **API调用**:SDK封装了大量微博API接口,包括发布微博、评论、转发、赞等,使得开发者可以按照需求定制功能。 二、SDK的使用流程 1. **注册开发者账号**:首先,你需要在新浪开放平台注册成为开发者,并创建...
源码通常包括了API调用的封装、错误处理、请求签名以及OAuth2.0授权流程的实现。这对于理解微博API的工作原理,以及提升自身Java编程和API开发能力都非常有帮助。 使用`weibo4j`进行开发,开发者首先需要在新浪开放...
1. **OAuth认证**:新浪微博API采用OAuth2.0进行身份验证,开发者需要注册应用获取App Key和App Secret,然后通过授权流程获取Access Token,用于后续API调用的身份验证。 2. **JSON解析**:API返回的数据通常以...