@gongzhen
2014-08-28T15:39:54.000000Z
字数 5640
阅读 2948
Umeng-Social
所有平台均继承自抽象基类UmengClient,该类定义了六个抽象方法,分别对应各个功能,且每个方法均为异步方法,支持await关键字。
下表列出了各个平台对每个方法的支持情况:
平台 | Login | Logout | HasLoggedin | ShareText | SharePicture | ShareLink |
---|---|---|---|---|---|---|
SinaWeiboClient | √ | √ | √ | √ | √ | √ |
RenrenClient | √ | √ | √ | √ | √ | √ |
TencentWeiboClient | √ | √ | √ | √ | √ | √ |
QzoneClient | √ | √ | √ | × | × | × |
DoubanClient | √ | √ | √ | √ | √ | √ |
WeixinClient | × | × | × | √ | √ | √ |
FaceBookClient | √ | √ | √ | √ | √ | √ |
TwitterClient | √ | √ | √ | √ | √ | √ |
MultiClient | √ | √ | × | √ | √ | √ |
UmengClient umengClient = new SinaWeiboClient(Your_Umeng_AppKey);
var res = await _umengClient.LoginAsync();
UmengClient umengClient = new SinaWeiboClient(Your_Umeng_AppKey);
var res = await _umengClient.LogoutAsync();
如果用户未登录,会先让用户进行登录。如果是需要获取用户信息的登录,可直接调用此接口。
UmengClient umengClient = new SinaWeiboClient(Your_Umeng_AppKey);
var res = await _umengClient.GetUserInfoAsync();
各平台对每个属性支持情况
标记 | 含义 |
---|---|
√ | 必选 |
× | 无效 |
可选 |
class UmengText
成员 | 新浪微博 | 人人网 | 腾讯微博 | QQ空间 | 豆瓣 | 微信 | ||
---|---|---|---|---|---|---|---|---|
Loc | × | × | × | |||||
Text | √ | √ | √ | √ | √ | √ | √ | √ |
Title | × | × | × | × | × | √ | × | × |
class UmengPicture
成员 | 新浪微博 | 人人网 | 腾讯微博 | QQ空间 | 豆瓣 | 微信 | ||
---|---|---|---|---|---|---|---|---|
Loc | × | × | × | |||||
Text | ||||||||
Title | × | × | × | × | × | √ | × | × |
Image | √ | √ | √ | √ | √ | √ | √ | √ |
class UmengLink
成员 | 新浪微博 | 人人网 | 腾讯微博 | QQ空间 | 豆瓣 | 微信 | ||
---|---|---|---|---|---|---|---|---|
Loc | × | × | × | |||||
Text | ||||||||
Title | × | × | × | × | × | √ | × | |
Url | √ | √ | √ | √ | √ | √ | √ | √ |
Type | √ | √ | √ | √ | √ | √ | √ | √ |
Author | × | × | × | × | × | × | × | × |
ThumbnailImage | × | × | × | × | × | × | × | |
ThumbnailUrl | × | × | × | × | × | × | × |
分享纯链接时将Type设为LinkType.None
分享链接到QQ空间时只能分享以.swf结尾的视频或音乐原链接。
示例:
//创建文本
UmengText text = new UmengText("Good Job!") { Title = "Music" }
//创建链接
UmengLink link = new UmengLink();
link.Url = @"http://v.yinyuetai.com/video/395495";
link.Type = LinkType.Music;
link.Author = "张学友";
link.Title = "情书";
link.Text = "Good music!";
link.ThumbnailImage = image;
link.ThumbnailUrl = @"http://img3.imgtn.bdimg.com/it/u=3064730846,772080841&fm=23&gp=0.jpg";
//创建图片
byte[] imageData = new byte[imageStream.Length];
imageStream.Read(imageData, 0, imageData.Length);
UmengPicture picture = new UmengPicture(imageData, "I like it!") { Title = "图片" }
//分享文本
await umengClient.ShareTextAsync(text);
//分享链接
await umengClient.ShareLinkAsync(link);
//分享图片
await umengClient.SharePictureAsync(picture);
调用MultiClient实例的接口时会先显示平台列表,由用户选择某一平台后再针对该平台做后续操作。
可通过调用MultiClient实例的Add方法将平台加入到列表,也可以在构造MultiClient实例时直接传入平台集合,加入MultiClient实例的顺序或传入的平台集合的顺序决定各平台在列表的显示顺序(从上至下)。
示例:
List<UmengClient> clients = new List<UmengClient>()
{
new SinaWeiboClient(Your_Umeng_App_Key),
new RenrenClient(Your_Umeng_App_Key),
new QzoneClient(Your_Umeng_App_Key),
new TencentWeiboClient(Your_Umeng_App_Key),
new DoubanClient(Your_Umeng_App_Key),
new WeixinClient(Your_Umeng_App_Key, Your_WeiXin_AppId),
new FaceBookClient(Your_Umeng_App_Key, Your_Facebook_AppId),
new TwitterClient(Your_Umeng_App_Key, Your_Twitter_ApiKey, Your_Twitter_ApiSecret)
};
UmengClient umengClient = new MultiClient(clients);
var res = await _umengClient.ShareLinkAsync(link);
验证效果
编译并运行后,点击添加分享功能的按钮出现如下分享页,那么说明你已经集成成功了!
平台列表页 | 授权页 | 分享编辑页 |
---|---|---|
微信采用SSO认证方式,详情请参见快速集成中第5节集成微信。
SSO名词解释 : SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
例如用户已经登录微信客户端,使用SSO授权登录时则不需要用户手动输入用户名、密码,直接点击登录即可, 因此可成为免登录.
下面是Social SDK不同平台应用信息注册网站的地址:
平台 | 网址 |
---|---|
新浪微博 | http://open.weibo.com |
腾讯微博 | http://dev.t.qq.com |
QQ空间 | http://connect.qq.com/intro/login/ |
微信好友 | http://open.weixin.qq.com |
https://developers.facebook.com | |
https://dev.twitter.com | |
人人 | http://dev.renren.com |
豆瓣 | http://developers.douban.com/ |
获得appkey后,为了方便您可以快速集成我们的社会化分享的服务,我们会为你对各个平台提供一个默认的appkey和appsecret,如果你想使用自己的微博平台的应用,您需在在我们网站更改默认的微博appkey,具体操作是:登录友盟网站->左上角选择你们的产品->组件->社会化组件->设置,菜单项下进行绑定配置。如果你尚未在我们支持的分享平台注册你的应用,注册过程可以参考如下:
1. 在新浪开放平台后台创建移动应用:http://open.weibo.com -> 应用开发 -> 移动应用 -> 创建应用
2. 在创建好新应用后,选择“基本信息”,安全域名填写"sns.whalecloud.com",其余字段按需填写;(如果是已有应用,可以在应用信息->基本设置->安全域名中做修改)
3. 如果应用尚未通过审核,则需要指定测试用户,该阶段只有指定的测试用户才可以分享信息到新浪微博,应用通过审核后此限制自动失效。
4. 将获取到的Key和Secret手工填写到友盟后台对应应用的组件 -> 社会化组件 -> 设置页 -> 新浪微博APP绑定信息部分。
1. 生成封装链接。如果还未配置应用地址的封装链接,需要在友盟后台对应应用的组件 ->社会化组件 ->设置页 中生成封装链接;
![appurl_socialurl](http://dev.umeng.com/images/ios/appurl_socialurl.png)
2. 在腾讯开放平台后台创建无线应用:http://dev.t.qq.com/ -> 应用开发 -> 创建应用 -> “无线应用”;
3. 在创建无线应用表单中,“应用网址”需要填写步骤1生成的应用网址的封装链接,其余字段按需填写;
(如果是已有应用,可以在基本信息 -> 应用网址中填写上述的封装链接)
4. 将获取到的Key和Secret手工填写到友盟后台对应应用的组件 -> 社会化组件 -> 设置页 -> 腾讯微博APP绑定信息部分。
人人网开放平台(不推荐继续使用,两种接入方式的区别详见,http://wiki.mobile.renren.com/zh/index.php/接入流程指南#.E5.B7.B2.E6.8E.A5.E5.85.A5.E8.BF.87.E4.BA.BA.E4.BA.BA)
1. 在如下位置创建应用:http://dev.renren.com/ -> 应用开发 -> 创建客户端应用 -> 填写应用名称;
2. 在已创建应用的基本信息 -> 应用根域名字段填写为“sns.whalecloud.com”;
3. 应用处于“开发中”状态(未审核通过前),需要在用户管理页面中添加测试用户,这些特定用户才能分享成功。应用通过审核后此限制自动失效。
4. 将获取到的App ID、API Key、Secret手工填写到友盟后台对应应用的组件 -> 社会化组件 -> 设置页 -> 人人网APP绑定信息部分,并勾选“开放平台”。
与人人网的申请、配置方式基本一致,开放平台链接如下:http://developers.douban.com/
回调地址为:http://sns.whalecloud.com/douban/callback
权限必须选择豆瓣广播
1. 在如下位置创建应用:http://connect.qq.com/manage/ -> 添加移动应用 -> 填写应用名称,确定;
2. 在接下来的应用控制台 -> 基本信息 -> 点击编辑按钮,填写必要的应用信息,并保存。(不做有可能授权失败)
3. 将获取到的APP ID、Key手工填写到友盟后台对应应用的组件 -> 社会化组件 -> 设置页 -> QQ空间APP绑定信息部分。
4. 按照以上配置可以满足大部分的图片分享需求,即指定图片URL进行图片分享;如需支持上传图片内容并分享,要在此页面另行申请upload_pic权限:http://wiki.opensns.qq.com/wiki/【QQ登录】API文档)
设置UmengSocial.IsDebug=true,可在output中观察log信息。
如过返回错误码不在以下表格中,请查阅相关分享平台错误码.
Social错误代码及错误信息
错误代码 | 错误说明 |
---|---|
5001 | 错误的友盟appkey,或者此appkey没有绑定任何平台.如果开发者绑定了,依然出现这个问题,让开发者再试一下,可能是刚绑定马上就测试的原因,最好等2分钟 |
5002 | 这个友盟appkey已经被禁止 |
5003 | 请求的参数中没有uid |
5004 | 未知的错误,具体的错误信息会在log的输出中 |
5005 | 访问频率超限,可一会儿再试 |
5006 | 请求参数中没有content字段 |
5007 | 请求参数中content字段的内容为空 |
5008 | 没有上传图片 |
5009 | 此友盟的appkey没有绑定对应平台的appkey和appsecret |
5010 | userid无效,这个用户并没有进行授权 |
5013 | userid无效,请求的参数中没有appkey这个字段 |
5014 | 没有对此用户进行授权 |
5016 | 分享信息重复 |
5017 | 分享图片大小有问题 |
5024 | 获取access token失败,具体看log输出 |
5025 | 获取access token失败,具体看log输出 |
5027 | 授权已经过期 |
5028 | 授权已经过期 |
错误代码 | 错误说明 |
---|---|
500 | 给定uid的用户并不存在 |
501 | 绑定账户失败 |
502 | 解绑定失败 |
503 | 评论失败 |
504 | 获取评论失败 |
505 | 用户被加入黑名单 |
506 | 获取好友失败 |
507 | 获取授权url失败 |
508 | 解除授权失败 |
510 | 分享失败 |
511 | 获取bar失败 |
512 | 从平台获取用户信息失败 |
513 | url跳转失败 |
514 | 从social获取用户信息失败 |
515 | 请求的参数错误 |
516 | 请求喜欢失败 |
517 | 版本号错误 |
错误代码 | 错误说明 |
---|---|
-101 | 没有Oauth授权 |
-102 | 未知错误 |
-103 | 服务器没响应 |
-104 | 初始化失败 |
-105 | 参数错误 |
-121 | 网络未连接 |
其他平台错误码
请发邮件至social-support@umeng.com。如果您出现的问题和SDK相关,请说明您使用的是WindowsPhone的SDK,我们会尽快回复您。