Android友盟微社区第三方集成

在上一阶段工作中,我的任务是集成自定义友盟微社区,在做DEMO的过程中,上网搜了很多关于这方面的信息,然而并不尽人意.所以再次写一个自己总结的社区API

友盟微社区集成文档:

对于药信APP想要嵌入友盟第三方微社区的前期research工作判断:

1.自主登陆设定: ok

2.自主发布Feed: ok

3.自主获取最新Feed: ok

4.所有话题集成Feed: ok

5.用户的评论信息以及获得的赞信息: ok

6.关于某一个话题的所有Feed获取: ok

7.给他人的赞信息: ok

8.小红点效果,未读显示: ok

9.设置分页加载功能: ok

10.   feed详情数据获取: ok

11.   发评论: ok

12.   回复评论: ok

 

 

友盟微社区官方文档地址: http://dev.umeng.com/wsq/android/errorcode

 

 

一.    自定义用户信息登录友盟微社区:

定义方法:

 /**

     * 自定义的登录信息注入

     */

    privatevoidLoginData(){

       CommUser user=newCommUser(); //获取CommUser操作实例化对象

       user.name="药信测试";            //自定义的用户名字

       user.id="18525304446";         //自定义的用户密码

/** 用户登录注入的状态监听器 */

       mCommSDK.loginToUmengServer(this, user,newLoginListener(){

           @Override

           publicvoidonStart(){

           }

           @Override

           publicvoidonComplete(int i,CommUser commUser){

              Log.d("tag","login result is"+ i);//获取登录结果状态码

           }

    });

此方法要在进入首页Feed的跳转动作的时候注入信息进去

 

二.    获取当前最新的Feed列表信息(获取信息已JsonObject对象形式存在):

定义方法:

/** 实例化友盟微社区CommunitySDK的操作对象 */

CommunitySDK communitySDK=com.umeng.comm.core.impl.CommunityFactory

              .getCommSDK(getApplicationContext());

       /**

        * 获取当前最新的Feed信息列表的监听器

        * onComplete()方法中arg0是获取的结果返回值

        */

       communitySDK.fetchLastestFeeds(newFetchListener<FeedsResponse>(){

 

           @Override

           publicvoidonStart(){

              //TODO Auto-generatedmethod stub

           }

           @Override

           publicvoidonComplete(FeedsResponse arg0){

              //TODO Auto-generatedmethod stub

              try{

                  JSONObject jsonObject=newJSONObject();

                  jsonObject = arg0.mJsonObject;

                  StringtextString = jsonObject.getString("");   

              }catch(Exception e){

                  //TODO: handleexception

                  e.printStackTrace();

              }

           }

    });

此时我们获取的jsonObject是一个Json对象,

其格式分析:

{
    "items": [
       {
            "status": 0,
            "liked": false,
            "seq": 266114,
            "creator": {         //发表Feed的用户信息字段
                "status": 0,
                "name": "心想事成",     //用户名称
                "icon_url": {},   //用户头像
                "gender": 1,
                "has_followed": false,
                "atype": 0,
               "id": "5643f80cee785035bd4d9e7d",  //用户ID
                "custom": null
            },
            "forward_count": 0,
            "image_urls": [         //Feed的主体信息中的图片
                {
                    "360": "http://static.social.umeng.com/image_befc37663068a4e0bbd4e51869238452@360h_50Q.jpeg",
                    "750": "http://static.social.umeng.com/image_befc37663068a4e0bbd4e51869238452@750w_90Q.jpeg",
                    "origin": "http://static.social.umeng.com/image_befc37663068a4e0bbd4e51869238452",
                    "format": "jpeg"
                },
                {}
            ],
            "is_top": 0,
            "create_time": "2015-11-16 10:18:17",   //Feed的发布时间
            "user_mark": 0,
            "id": "56493ce9ee785072b0a1db0e",       //FeedId
            "likes_count": 0,
            "has_collected": false,
            "title": "",
               "origin_feed": null, //转载的Feed的主体
            "custom": "",
            "content": "我发布一条消息用来测试",      //Feed的信息Text
            "comments_count": 0,
            "location": null,
            "parent_feed_id": "",
            "related_user": [ ],
            "is_recommended": false,
            "type": 0,
            "topics": [ ],
         
       },
 
 

三.    即时发布Feed信息:

方法定义:

// 创建CommUser前必须先初始化CommunitySDK

FeedItem feedItem=newFeedItem();

feedItem.id="100";// Feedid

feedItem.text="咱们说一个到一个,说到那个说那个";// Feed的文本信息

CommunitySDK communitySDK = com.umeng.comm.core.impl.CommunityFactory

                     .getCommSDK(getApplicationContext());

communitySDK.postFeed(feedItem,null);

把这个方法定义为一个PostFeed(),在Intent的时候注入信息

参数说明

  • newFeed : 要发布的feed 文字、赞、话题、图片等数据都存储在该对象中,数据字典都为共有字段,每个字段的含义请参考api_docs中的文档。
  • listener : 监听器,发布结果的回调

四.    获取当前社区所有可关注的话题信息列表(注:从第四条开始到第八条方法定义只写方法,具体实现请联想本文第二条)

方法定义:

Void fetchTopics(Listeners.FetchListener<TopicResponse> listener)

 

接口数据类型分析:

{
    "items": [
        {
            "description": null,
            "fan_count": 122,
            "icon_url": "http://static.social.umeng.com/portal_bfbac3089594ecce9161a3a73b881d36@18-18-144-144a_80w_90Q.jpg",    //话题的头像
            "is_focused": false,          //是否关注的返回值
            "custom": "",
            "create_time": "2015-09-21 17:13:19",
            "icon_urls": {},      //话题的头像
            "feed_count": 134,
            "id": "55ffca2f41db1a17e9b60541",     //话题的TopicId
            "name": "测试话题集"          //话题名称
        },
    ],
    "navigator": null
}

 

 

五.    获取当前话题的所有Feed信息列表:

方法定义:

Void fetchTopicFeed(String topicId,FeedOrderorder,Listeners.FetchListener<FeedsResponse> listener)

参数说明

  • topicId : 要获取feed的话题id
  • order : 排序。取值如下:
    FeedOrder.DESC_COMMENT(按照评论降序排列)、
    FeedOrder.ASC_COMMENT(按照评论数升序排列)、
    FeedOrder.DESC_LIKE(按照点赞降序排列)、
    FeedOrder.ASC_LIKE(按照点赞数升序排列)、
    FeedOrder.DESC_FORWARD(按照转发降序排列)、
    FeedOrder.ASC_FORWARD(按照转发数升序排列)、
    FeedOrder.DESC_ACTION(按评论或赞或转发最新时间降序排序)、
    FeedOrder.ASC_ACTION(按评论或赞或转发最新时间升序排序)
  • listener : 监听器,获取结果的回调

接口数据类型分析:

{
    "top_items": [ ],
    "navigator": null,
    "items": [
        {
            "status": 0,
            "liked": false,
            "seq": 266609,
            "creator": {      //对应着相应的用户信息
                "status": 0,
                "name": "永恒乐章",
                "icon_url": {},
                "gender": 1,
                "has_followed": false,
                "atype": 0,
                "id": "5645778f7019c930fc3b1572",
                "custom": "null"
            },
            "forward_count": 0,
            "image_urls": [ ],
            "is_top": 0,
            "create_time": "2015-11-16 14:39:36",
            "user_mark": 0,
            "id": "56497a287019c91f143f02c0",
            "likes_count": 0,
            "has_collected": false,
            "title": "",
            "origin_feed": null,
            "custom": "",
            "content": "系统通知消息没有推送啊,我已经集成了推送,并且有人@的时候能推送,但发送系统消息没有推送啊#问题反馈# #测试话题集# @友盟微社区 @武媚娘",      //Feed的文本
            "comments_count": 0,
            "location": {},
            "parent_feed_id": "",
            "related_user": [],
            "is_recommended": false,
            "type": 0,
            "topics": [     //这个Feed属于哪一个话题
                {
                    "create_time": "2015-02-04 11:36:23",
                    "description": "问题反馈讨论区",
                    "name": "问题反馈",
                    "icon_url": "http://static.social.umeng.com/portal_cef1d2b23bd290d4d332e9a7122a43ca@20-13-277-277a_80w_90Q.jpg",
                    "id": "54d193b7ee7850207a2315dc",
                    "custom": ""
                },
                {
                    "create_time": "2015-09-21 17:13:19",
                    "description": null,
                    "name": "测试话题集",
                    "icon_url": "http://static.social.umeng.com/portal_bfbac3089594ecce9161a3a73b881d36@18-18-144-144a_80w_90Q.jpg",
                    "id": "55ffca2f41db1a17e9b60541",
                    "custom": ""
                }
            ],
            "share_link": "http://wsq.umeng.com/feeds/56497a287019c91f143f02c0/"
        },
    ]
}

六.    获取用户的所有收到的评论:

方法定义:

publicvoidfetchReceivedComment(int start,SimpleFetchListener<CommentResponse> listener)

参数说明

  • start : 起始位置
  • listener : 回调函数,在回调中获取收到的评论列表

接口数据类型分析:

{

    Items[

       {

          Creator[]      //当前用户信息(_具体集合内部信息注释可参照前面所做的JSON格式解析)

          Feed[           //当前评论的Feed主体

Creator[]    //当前评论的Feed的发布人

]

}

]

}

 

七.    获取用户的所有收到的赞信息:

方法定义:

publicvoidfetchUserLikes(int start,final SimpleFetchListener<LikesResponse> listener);

参数说明

  • start : 起始位置
  • listener : 回调函数,在回调中获取收到的赞列表

接口数据类型分析:

{

    Items[

       {

          Creator[]      //当前用户信息(_具体集合内部信息注释可参照前面所做的JSON格式解析)

          Feed[           //当前评论的Feed主体

Creator[]    //当前评论的Feed的发布人

]

}

]

}

 

八.    获取用户给他人的所有评论信息:

方法定义:

publicvoidfetchPostedComment(int start,SimpleFetchListener<CommentResponse> listener)

参数说明

  • start : 起始位置
  • listener : 回调函数,在回调中获取发出的评论列表

 

接口数据类型分析:

{

    Items[

       {

          Creator[]      //当前用户信息(_具体集合内部信息注释可参照前面所做的JSON格式解析)

          Feed[           //当前评论的Feed主体

Creator[]    //当前评论的Feed的发布人

]

}

]

}

九.    获取用户发出的赞信息:

方法定义:

publicvoidfetchLikedRecords(String uid,final FetchListener<LikeMeResponse> listener);

 

参数说明:

·        uid : 用户ID

·        listener :回调函数,在回调中获取记录列表

 

接口数据类型分析:

{

    Items[

       {

          Creator[]      //当前用户信息(_具体集合内部信息注释可参照前面所做的JSON格式解析)

          Feed[           //当前评论的Feed主体

Creator[]    //当前评论的Feed的发布人

]

}

]

}

 

十.    小红点未读设置:

方法定义:

/**

 * 初始化微社区的配置</br>

 * @param listener 回调函数

 */

 public voidinitCommConfig(SimpleFetchListener<ConfigResponse> listener);

参数定义:

total总数,like喜欢数,notice消息数,commet评论数

 

十一.分页加载数据:

   方法定义:

   communitySDK.fetchNextPageData(Url,FeedsResponse.class,

              newFetchListener<FeedsResponse>(){}

    // 第一个参数是URL地址,第二个是返回Response的类型,第三个是Listener

    参数类别:

    FeedsResponse     Feed下一页方法需要的参数

    CommentResponse   评论的下一页方法需要的参数

    TopicResponse     话题的下一页方法需要的参数

LikesResponse    赞相关的信息的下一页方法需要的参数

十二.feed详情界面数据获取:

   方法定义:

voidfetchFeedWithId(Stringfeedid,Listeners.FetchListener<FeedItemResponse> listener)

参数说明

  • feedId : 要获取的feed id
  • listener : 监听器,获取结果的回调

 

publicvoidfetchFeedsWithIds(List<String> feedIdList,finalFetchListener<FeedsResponse> listener);

参数说明

  • feedIdList : Feedid列表
  • listener : 回调函数,在该回调中获取feed列表

注:该接口返回的Feed中不包括like、comment信息。

 

   publicvoidfetchComplexFeedsWhithIds(List<String> feedIdList,finalFetchListener<FeedsResponse> listener);

    参数说明

  • feedIdList : FeedId列表
  • listener : 回调函数,在该回调中返回feed列表

注:该接口返回的feed中包括like、comment信息

参数类型:

   

十三.发布评论数据:

   方法定义:

   void postComment(Comment comment,Listeners.FetchListener<SimpleResponse> listener)

    参数说明

  •   comment : 要发布的评论
  • listener : 监听器,结果回调

例子:

publicvoidPostComment(){

       CommunitySDK communitySDK =CommunityFactory

              .getCommSDK(getApplicationContext());

       Comment comment=newComment();

       comment.feedId="564ed67c7019c91813f0caaa";

       comment.text="第一次评论";

       communitySDK.postComment(comment,newFetchListener<SimpleResponse>(){

 

           @Override

           publicvoidonComplete(SimpleResponse arg0){

              //TODO Auto-generatedmethod stub

              JSONObject jsonObject=newJSONObject();

              jsonObject = arg0.mJsonObject;

              Log.e("1111","--wwwww"+jsonObject);

           }

 

           @Override

           publicvoidonStart(){

              //TODO Auto-generatedmethod stub

 

           }

       });

    }

十四.回复评论:

   方法定义:

   publicvoidPostComment(){

       CommunitySDK communitySDK =CommunityFactory

              .getCommSDK(getApplicationContext());

       Comment comment=newComment();

       comment.feedId="564ed67c7019c91813f0caaa";

       comment.replyCommentId="564ed6de7019c91715b42b90";  //这是要回复的commentId

       comment.text="第一次评论";

       communitySDK.postComment(comment,newFetchListener<SimpleResponse>(){

 

           @Override

           publicvoidonComplete(SimpleResponse arg0){

              //TODO Auto-generatedmethod stub

              JSONObject jsonObject=newJSONObject();

              jsonObject = arg0.mJsonObject;

              Log.e("1111","--wwwww"+jsonObject);

           }

 

           @Override

           publicvoidonStart(){

              //TODO Auto-generatedmethod stub

 

           }

       });

    }

十五.评论的逻辑分析:

A:发了一个文章:”中大奖了”

B:评论了这个” 中大奖了”,评论内容是”做梦”

C:回复B的”做梦”.回复为”白日做梦”

   此时:在A的评论列表消息中收到两条分别为B,C的评论消息

         在B的评论列表消息中收到C的评论消息

 

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值