(如果你down下来sdk是懵比的 那么你可以看一看. 希望能有帮助.)
今天开始做朋友圈功能,本来是自己自定义.突然发现友盟有这个api 秉着不去重复造轮子的思想. 决定用造好的轮子. 友盟的版块分为 精简版.微博版.论坛版.无UI版. 前面都还好. 主要就是无UI版 发现什么提示都没有. 很蛋疼,有木有. 这篇文章写下来 就是想下次有做的朋友 可以少走一些弯路.多少能提供一些帮助.
首先下载无UI版的Sdk 打开后会看到里面有如下内容
这三个核心包 里面的libs文件和res文件 放到对应的目录文件下即可.(注意jar包冲突.!!)
整合进来以后就该配置了.
一:在注册清单ManiFest文件 添加在UMeng申请到的appKey以及Secret
<span style="font-size:18px;"> <span style="white-space:pre"> </span><meta-data
android:name="UMENG_APPKEY"
android:value="Your_AppKey" />
<meta-data
android:name="UMENG_MESSAGE_SECRET"
android:value="Your_Secret"/></span>
(接下来就该在代码里用了. 因为无UI版就是只提供了他们的Api而已. 所以就看看代码里 我们应该调用哪些Api)
二:首先要登陆到友盟社区(这里登陆以后 自动的帮用户在友盟后台注册)
<span style="font-size:18px;">/**
* 登陆到UMeng
* @param mContext
* @param userName 用户名
* @param uId 用户Id
*/
public void loginToUmeng(Context mContext,String userName,String uId){
//创建CommUser前必须先初始化CommunitySDK
CommunitySDK communitySDK = getUsdk(mContext);
CommUser user = new CommUser();
user.name = userName;
user.id = uId;
communitySDK.loginToUmengServerBySelfAccount(mContext, user, new LoginListener() {//调用登录接口
@Override
public void onStart() {
}
@Override
public void onComplete(int stCode, CommUser commUser) {
Log.d("tag", "login result is"+stCode);//获取登录结果状态码
if (ErrorCode.NO_ERROR==stCode) {
//在此处可以跳转到任何一个你想要的activity
LogUtil.e("登陆社区成功");
}
}
});
}</span>
那么对应的有登录. 习惯性的就刚好把登出的操作也做一下
<span style="font-size:18px;"> /**
* 登出友盟社区
* @param mContext
*/
public void logout(Context mContext){
getUsdk(mContext).logout(mContext, new LoginListener() {//调用登出接口
@Override
public void onStart() {
}
@Override
public void onComplete(int stCode, CommUser commUser) {
if(stCode==ErrorCode.SUCCESS){
//登出成功
LogUtil.e("登出成功");
}
}
});
}</span>
//这样一来 登陆 和登出的操作都有了. 只需要在对应的回调里执行对应方法即可(当用户在本App登录成功的时候 开始调用Umeng登录接口)
//留一下User文档.以便拓展
限定符和类型 | 字段和说明 |
---|---|
int | age
用户年龄
|
static android.os.Parcelable.Creator<CommUser> | CREATOR |
int | currency
货币字段
|
android.os.Bundle | extraData
其他信息
|
int | fansCount
粉丝数量
|
int | feedCount
未读消息数
|
int | followCount
关注数
|
CommUser.Gender | gender
用户性别
|
String | iconUrl
用户头像url
|
boolean | isFollowed
登录用户是否关注该用户
|
boolean | isFollowingMe
该用户是否关注登录用户
|
boolean | isRecommended
该用户是否被推荐。
|
int | level
用户等级
|
String | levelTitle
用户等级的名称
|
int | likeCount
点赞数
|
int | likedCount
被点赞数
|
int | lock_currency
锁定货币字段
|
List<Medal> | medals
勋章
|
String | name
用户昵称
|
CommUser.Permisson | permisson
用户权限, 默认为匿名用户权限
|
int | point
积分
|
int | score
自定义积分接口
|
Source | source
用户登录来源,默认为友盟登录;例如sina,qq,qzone等都可以.
|
String | sourceUid
三方平台uid
|
int | status
用户的状态
|
List<CommUser.SubPermission> | subPermissions
该用户的子权限,一个用户可能存在多种权限。
|
String | token
用户在友盟服务器的token
|
List<Topic> | topics
关注话题数
|
int | unReadCount
未读消息数
|
三:发表说说/帖子
<span style="font-size:18px;">/**
* 创建帖子/说说
* @param mContext
* @param feedItem 要创建的帖子实体
* @param simpleFetchListener //结果回调监听
*/
public void createFeed(Context mContext, FeedItem feedItem, Listeners.SimpleFetchListener<FeedItemResponse> simpleFetchListener){
getUsdk(mContext).postFeed(feedItem,simpleFetchListener);
}</span>
<span style="font-size:18px;"> /**
* 发表说说
*/
private void send() {
//创建帖子实例
FeedItem feedItem = new FeedItem();
feedItem.text = "test Create";//帖子文本
feedItem.title = "test title";//帖子标题
feedItem.addTime ="1997/1/1";//发表时间
// feedItem.imageUrls = null;//图片列表
feedItem.locationAddr="M78 Planet";//发布坐标
feedItem.media_type = getTextType();//文本类型--0:纯文本---1:富文本--2:视频流
feedItem.status = FeedItem.STATUS_NORMAL;//帖子状态.
feedItem.type = 0;//公告 Or 普通帖子.
UMengCircleHelper.getInstance().createFeed(this, feedItem, new Listeners.SimpleFetchListener<FeedItemResponse>() {
@Override
public void onComplete(FeedItemResponse response) {
Log.e("TAG","帖子创建成功"+response.result.text);
}
});
}</span>
FeedItem字段Api
限定符和类型 | 字段和说明 |
---|---|
int | addScore
增加积分
|
String | addTime
收藏时间
|
static int | ANNOUNCEMENT_FEED
公告
|
List<CommUser> | atFriends |
boolean | ban_user
是否可禁言
|
FeedItem.CATEGORY | category
Feed的类型。
|
int | commentCount
评论条数
|
List<Comment> | comments
评论列表
|
CommUser | creator
发出该消息的用户
|
static android.os.Parcelable.Creator<FeedItem> | CREATOR |
int | distance
feed 的距离
|
android.os.Bundle | extraData
存储附加数据,不会存储到数据库中
|
int | forwardCount
转发条数
|
List<ImageItem> | imageUrls
图片列表
|
boolean | isCollected
是否是收藏贴
|
boolean | isFriends
是否是朋友帖子
|
boolean | isLiked
是否点赞
|
boolean | isNearby
是否是附近的帖子
|
boolean | isRecommended
推荐
|
int | isTop
是否置顶
|
int | likeCount
like条数
|
List<Like> | likes
赞列表
|
android.location.Location | location
发布该消息时所在的位置
|
String | locationAddr
发布的位置
|
int | media_type
文本类型:0普通文本 1富文本 2视频
|
String | nextPageUrl
下一页feed的url地址
|
static int | NORMAL_FEED
普通feed被点赞数
|
int | permission
feed字段 >=100可以删帖子
|
String | publishTime
发布时间
|
String | rich_content
富文本内容
|
int | seqNumber
唯一序列号
|
String | shareLink
分享链接
|
FeedItem | sourceFeed
原生feed
|
String | sourceFeedId
原生feedId
|
int | status
feed的状态
|
static int | STATUS_DELETE
被删除
|
static int | STATUS_LOCK
被锁定
|
static int | STATUS_NORMAL
正常
|
static int | STATUS_SENSITIVE
含有敏感信息
|
static int | STATUS_SNOW
被管理员删除
|
static int | STATUS_SPAM
被屏蔽
|
static int | STATUS_VOTED
被举报
|
int | tag
feed字段 tag为精华
|
String | text
文本内容
|
String | title
Feed 标题
|
static int | TOP_FEED
置顶的Feed
|
List<Topic> | topics
所属话题
|
int | type
feed 类型, 0为普通类型,1为公告类型
|
至此接下来的就是这样的操作 往复循环. 在 友盟官方Api找到你要用的接口用CommunitySdk对象直接调用
如果需要传友盟定义的参数 如FeedItem CommUser这样的对象.在你下载包的根目录 api_doc/java_doc/index.html文件打开 找到你要看的类 如图