昨天已经顺利完成了新浪微博的关注和获取已关注人信息的功能开发
首先是获取OAuth认证,简历一个Oauth类里面执行认证的操作,这个过程我会在下一篇博文里面讲到,那么要想获取登陆用户的所关注用户的id,微博等信息需要对下面这个json地址进行查询!
http://api.t.sina.com.cn/statuses/friends_timeline.json,
关于这个操作的api介绍可以点击下面的链接看下官方的说明!
http://open.weibo.com/wiki/index.php/Statuses/friends_timeline
在用户进行了OAuth认证后,我们就可以开始获取其所关注用户的用户信息及微博了
OAuth oauth=new OAuth();
String url = "http://api.t.sina.com.cn/statuses/friends_timeline.json";
List params=new ArrayList();
params.add(new BasicNameValuePair("source", oauth.consumerKey));
HttpResponse response =oauth.SignRequest(user.getToken(), user.getTokenSecret(), url, params);
if(200==response.getStatusLine().getStatusCode()){
try{
InputStream is=response.getEntity().getContent();//将网页主体以inputStream的形式返回
BufferedReader reader=new BufferedReader(new InputStreamReader(is),4000);//每次读取4000个字节
StringBuffer sb=new StringBuffer((int)response.getEntity().getContentLength());
try{
char[] tmp=new char[1024];
int l;
while((l=reader.read(tmp))!=-1){
//如果没有读完的话
sb.append(tmp,0,l);
}
}finally{
reader.close();
}
String str=sb.toString();
response.getEntity().consumeContent();
JSONArray data=new JSONArray(str);
for(int i=0;i<data.length();i++)
{
//这个是查询登陆用户所有关注人的id,text等信息
JSONObject d=data.getJSONObject(i);
//Log.e("json", "rs:" + d.getString("created_at"));
if(d!=null){
JSONObject u=d.getJSONObject("user");
if(d.has("retweeted_status")){
JSONObject r=d.getJSONObject("retweeted_status");
}
//微博id
id=d.getString("id");
String userId=u.getString("id");
String userName=u.getString("screen_name");
String userIcon=u.getString("profile_image_url");
Log.e("userIcon", userIcon);
String time=d.getString("created_at");
String text=d.getString("text");
String followers_count=d.getString("followers_count");
String description=d.getString("description");
//还可以查询很多信息,这里就不详细写了,下面附一个返回的json大家看下就好了
Boolean haveImg=false;
if(d.has("thumbnail_pic")){
haveImg=true;
//String thumbnail_pic=d.getString("thumbnail_pic");
//Log.e("thumbnail_pic", thumbnail_pic);
}
Date date=new Date(time);
time=date.toGMTString();
if(wbList==null){
wbList=new ArrayList<WeiboInfo>();
}
WeiboInfo w=new WeiboInfo();
w.setId(id);
w.setUser_id(userId);
w.setUserName(userName);
w.setRealeaseTime(time);
w.setUserContent(text);
w.setIsHaveImage(haveImg);
w.setUser_icon(userIcon);
wbList.add(w);
}
}
}catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
然后这样就获取了登陆用户关注用户的信息了,然后下面是来实现关注的功能,这里可以通过被关注用户的用户名和其ID来关注,官方推荐使用ID因为怕避免重复,要想使用ID关注就必须要获得用户的授权,这里我两个方式都讲讲:
首先是用户名,通过对下面这个地址来关注ni要关注用户名得用户,下面那个userName是你要关注微博用户的昵称
http://api.t.sina.com.cn/friendships/create/:userName.format
通过这个地址将返回一个json是你关注用户的信息
List params=new ArrayList();
OAuth oauth=new OAuth();
params.add(new BasicNameValuePair("source", oauth.consumerKey));
HttpResponse response=oauth.SignRequest(user.getToken(),user.getTokenSecret(), "http://api.t.sina.com.cn/friendships/create/"+userName+".format", params);
如果你需要在进行其他的操作,那么类似上面的方法再进行json查询获取信息。
下面是第二种,通过授权获得授权用户的id再进行查询
这个过程也是首先是获取用户id,这个要在OAuth认证里面获得,获取这个id后就类似上面的操作只要将json地址改为:
"http://api.t.sina.com.cn/friendships/create/"+userId()+".json"
就OK了,下面是返回了两段json代码
1、查询登陆用户关注用户的信息:
[ { "created_at" : "Tue Nov 30 16:21:13 +0800 2010", "text" : "转发微博。", "truncated" : false, "retweeted_status" : { "created_at" : "Tue Nov 30 16:05:41 +0800 2010", "text" : "对待事物的出发点、立足点,决定着事物的发展及发展后的结果。这个结果实际也是一种相对而言的成败。世俗间追求这种成败却又调整不好出发点,更是找不到立足点。所以成也好败也好,放下了最好。", "truncated" : false, "in_reply_to_status_id" : "", "annotations" : [ ], "in_reply_to_screen_name" : "", "geo" : null, "user" : { "name" : "归元隆印", "domain" : "", "geo_enabled" : true, "followers_count" : 66710, "statuses_count" : 77, "favourites_count" : 0, "city" : "1", "description" : "心存慈悲 身奉善行 出世入世 修己助人 归元禅寺官方网站:http://www.guiyuanchansi.net", "verified" : true, "id" : 1799833402, "gender" : "m", "friends_count" : 4, "screen_name" : "归元隆印", "allow_all_act_msg" : false, "following" : false, "url" : "http://1", "profile_image_url" : "http://tp3.sinaimg.cn/1799833402/50/1283207796", "created_at" : "Tue Aug 24 00:00:00 +0800 2010", "province" : "42", "location" : "湖北 武汉" }, "favorited" : false, "in_reply_to_user_id" : "", "id" : 3980364843, "source" : "<a href=/"http://t.sina.com.cn/" rel=/"nofollow/">新浪微博</a>" }, "in_reply_to_status_id" : "", "annotations" : [ ], "in_reply_to_screen_name" : "", "geo" : null, "user" : { "name" : "半拉拖鞋", "domain" : "banlatuoxie", "geo_enabled" : true, "followers_count" : 56, "statuses_count" : 333, "favourites_count" : 1, "city" : "5", "description" : "在这里,我只管把话发出去,有没有人理就不管我的事了!", "verified" : false, "id" : 1799824787, "gender" : "m", "friends_count" : 76, "screen_name" : "半拉拖鞋", "allow_all_act_msg" : false, "following" : false, "url" : "http://blog.sina.com.cn/lingdianjingq", "profile_image_url" : "http://tp4.sinaimg.cn/1799824787/50/1289443070/1", "created_at" : "Sun Sep 05 00:00:00 +0800 2010", "province" : "11", "location" : "北京 朝阳区" }, "favorited" : false, "in_reply_to_user_id" : "", "id" : 3980654229, "source" : "<a href=/"http://t.sina.com.cn/" rel=/"nofollow/">新浪微博</a>" }, ... ]
昨天已经顺利完成了新浪微博的关注和获取已关注人信息的功能开发相关推荐
- 关注按钮切换已关注_微信公众号已关注粉丝批量标签分组怎么操作?
对于微信公众号已关注粉丝打标签分组的实现,微号帮平台提供了粉丝分组批量转移功能实现,公众平台提供了开发接口供编程实现功能,均能为微信公众号粉丝批量标签分组,只要粉丝还关注着公众号都能打标签分组,粉丝标 ...
- 关注按钮切换已关注_行业关注 | 粘胶短纤平稳运行下,或已暗潮涌动
近期,粘胶短纤市场可谓是苦尽甘来,生产企业依托于低库存支撑下价格稳定,但人棉纱部分企业短约订单将陆续执行完毕,或因价格跟涨之后缺乏实单夯实而转跌. 所以在整体供应面宽松情况下,如需求难以匹配,粘胶短纤 ...
- php拉取公众号所有关注的人,微信公众平台开发获取关注者列表
本文介绍在微信公众平台上如何使用高级接口开发获取关注者列表的功能. 一.接口介绍 公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的Open ...
- TP5 给已关注微信公众号的用户推送消息
登录微信公众平台 点击左侧模板消息,在从模版库中添加找到类似的模板点详情后添加. 若没有找到能用的,可自己创建(预计审核7~14天) 以下TP5代码 class Message extends Bas ...
- 猫猫新开通了新浪微博,欢迎小伙伴们来关注哟
猫猫新开通了新浪微博,欢迎小伙伴们来关注哟 新浪微博地址: http://weibo.com/znycat
- python分析微博粉丝_新浪微博Python SDK笔记——获取粉丝列表或关注列表 | 学步园...
上一节中创建了一个initclient包,封装了授权的过程,通过获取的myAPIClient对象可以直接调用API接口进行微博操作,上一节中就调用了发微博的接口发了一条新微博.这一节还是直接使用ini ...
- python微博爬虫分析_python爬取和分析新浪微博(一):scrapy构建新浪微博榜单、博主及微博信息爬虫...
1. 爬虫项目介绍 爬虫首先基于python scrapy 框架,使用了随机用户代理和IP代理等反爬技巧,将爬取到的微博领域数据,各领域榜单博主信息和博主的微博信息分别存入的mysql数据库对应的表格 ...
- python爬取新浪微博内容_python新浪微博爬虫,爬取微博和用户信息 (含源码及示例)...
[实例简介] 这是新浪微博爬虫,采用python+selenium实现. 免费资源,希望对你有所帮助,虽然是傻瓜式爬虫,但是至少能运行.同时rar中包括源码及爬取的示例. 参考我的文章: http:/ ...
- OSChina 周三乱弹 ——公司需要随时能关注到身边细节的人
2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2017)请戳(这里) [今日歌曲] @元气少女 :分享江语晨的单曲<最后一页>: <最后一 ...
最新文章
- 中国矿业大学计算机英语复试,中国矿业大学2020计算机科学与技术学院考研复试科目参考书目...
- 彻底理解Canal,看这篇就够了
- python mysql安装
- QTableview 获取鼠标坐标的item(QModelIndex)
- ActiveMQ的消息重发策略和DLQ处理
- IPython 使用记录
- C语言试题四十之使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
- WordPress的RSS订阅优化
- 【BZOJ1196】公路修建问题,二分+最小生成树
- 如何从派生类函数调用父类函数?
- Keil/MDK(1):查看STM32的RAM和ROM使用情况
- Git的介绍和常用命令使用
- 谷歌开源的代码评审规范,值得借鉴!
- 优酷KUX1080转码工具如何将KUX视频转换成MP4格式
- 线性代数之n维向量-思维导图
- 光纤信号服务器,485转光纤的两种方式
- Spark Streaming简单入门(示例+原理)
- 【Spark NLP】第 6 章:信息检索
- Web客户端语言HTML、XHTML和XML相关知识介绍
- SpringCloud+SpringCloudAlibaba
热门文章
- 鼎力支持生态发展,FIL WORLD为企鹅社区全方位赋能
- 快递100参数错误-面单类错误(电子面单/发货单/模板)常见问题和解决方法
- 微信小程序趋势及前景,大厂直通车!
- 一年又一年 (写在鸡年除夕夜,明天是狗年)
- 绝地求生竞赛服务器没有响应,绝地求生比赛莫名掉线,一个小时都没解决,这是专业性?...
- Python:使用pydantic库进行数据校验
- mac的iterm2的小清新主题
- 和大家聊聊什么是小程序?
- PostgreSQL REGEXP_REPLACE用法及代码示例
- python获取文件夹下所有图片目录