一、关注指定用户
当前的Share SDK已经实现了腾讯微博的关注功能,下面的代码演示腾讯微博的关注操作:
1 2 3 4 5 6 |
String account = "shareSDK"; Platform weibo = ShareSDK.getPlatform(context,TencentWeibo.NAME); //添加平台事件监听 weibo.setPlatformActionListener(paListener); //关注好友 weibo.followFriend(account); |
如果重复关注。paListener会有错误回调,因此最好处理此异常,提示“重复关注”,或者直接提示“关注成功”。
执行关注前Share SDK会自行判断平台是否已经授权,若未授权,会自行执行授权操作。
执行关注前Share SDK会自行判断平台是否已经授权,若未授权,会自行执行授权操作。
二、获取关注列表
因为平台的差异,Share SDK当前仅为有限的平台提供获取关注列表的功能,这些平台包括:腾讯微博、Facebook和Twitter(其中Facebook获取的是好友列表,QQ,微信平台是不支持获取好友的)。下面的代码演示获取授权账户在微博上的第一页关注列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
TencentWeibo weibo = new TencentWeibo(v.getContext()); weibo.setPlatformActionListener(new PlatformActionListener() { public void onError(Platform weibo, int action, Throwable t) { t.printStackTrace(); if (action == Platform.ACTION_GETTING_FRIEND_LIST) { // 在这里处理获取关注列表失败的代码 } } public void onComplete(Platform weibo, int action, HashMap<String, Object> res) { if (action == Platform.ACTION_GETTING_FRIEND_LIST) { // 在这里处理获取关注列表成功的代码 } } public void onCancel(Platform weibo, int action) { if (action == Platform.ACTION_GETTING_FRIEND_LIST) { // 在这里处理取消获取关注列表的代码 } } }); weibo.listFriend(50, 0, null); // 获取授权账号的列表则传递null |
下面的代码演示简单的解析获取到的好友列表(以解析好友的用户名为例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public void onComplete(Platform weibo, int action, HashMap<String, Object> res) { //获取好友列表的微博名,解析数据 ArrayList<Following> adata = new ArrayList<Following>(); @SuppressWarnings("unchecked") ArrayList<HashMap<String, Object>> users = (ArrayList<HashMap<String,Object>>) res.get("users"); String str="好友列表: "; //循环获取好友微博名 for (HashMap<String, Object> user : users) { String name = String.valueOf(user.get("name")); str=str+"\n"+name; } //打印出好友微博名列表 System.out.println(str); } |
关注列表的接口是分页的,不建议每一页请求太多项目,因为部分平台只能支持30个左右的分页。分页的页码从0开始。