[关闭]
@gongzhen 2014-08-28T07:39:54.000000Z 字数 5640 阅读 2843

WindowsPhone Social SDK 2.0 详细集成指南

Umeng-Social


1 接口说明

所有平台均继承自抽象基类UmengClient,该类定义了六个抽象方法,分别对应各个功能,且每个方法均为异步方法,支持await关键字。

下表列出了各个平台对每个方法的支持情况:

平台 Login Logout HasLoggedin ShareText SharePicture ShareLink
SinaWeiboClient
RenrenClient
TencentWeiboClient
QzoneClient × × ×
DoubanClient
WeixinClient × × ×
FaceBookClient
TwitterClient
MultiClient ×

2 登录

  1. UmengClient umengClient = new SinaWeiboClient(Your_Umeng_AppKey);
  2. var res = await _umengClient.LoginAsync();

3 注销

  1. UmengClient umengClient = new SinaWeiboClient(Your_Umeng_AppKey);
  2. var res = await _umengClient.LogoutAsync();

3 获取用户信息

如果用户未登录,会先让用户进行登录。如果是需要获取用户信息的登录,可直接调用此接口。

  1. UmengClient umengClient = new SinaWeiboClient(Your_Umeng_AppKey);
  2. var res = await _umengClient.GetUserInfoAsync();

4 分享

[1] 创建分享内容

各平台对每个属性支持情况

标记 含义
必选
× 无效
可选

class UmengText

成员 新浪微博 人人网 腾讯微博 QQ空间 豆瓣 微信 Facebook Twitter
Loc × × ×
Text
Title × × × × × × ×

class UmengPicture

成员 新浪微博 人人网 腾讯微博 QQ空间 豆瓣 微信 Facebook Twitter
Loc × × ×
Text
Title × × × × × × ×
Image

class UmengLink

成员 新浪微博 人人网 腾讯微博 QQ空间 豆瓣 微信 Facebook Twitter
Loc × × ×
Text
Title × × × × × ×
Url
Type
Author × × × × × × × ×
ThumbnailImage × × × × × × ×
ThumbnailUrl × × × × × × ×

分享纯链接时将Type设为LinkType.None
分享链接到QQ空间时只能分享以.swf结尾的视频或音乐原链接。

示例:

  1. //创建文本
  2. UmengText text = new UmengText("Good Job!") { Title = "Music" }
  3. //创建链接
  4. UmengLink link = new UmengLink();
  5. link.Url = @"http://v.yinyuetai.com/video/395495";
  6. link.Type = LinkType.Music;
  7. link.Author = "张学友";
  8. link.Title = "情书";
  9. link.Text = "Good music!";
  10. link.ThumbnailImage = image;
  11. link.ThumbnailUrl = @"http://img3.imgtn.bdimg.com/it/u=3064730846,772080841&fm=23&gp=0.jpg";
  12. //创建图片
  13. byte[] imageData = new byte[imageStream.Length];
  14. imageStream.Read(imageData, 0, imageData.Length);
  15. UmengPicture picture = new UmengPicture(imageData, "I like it!") { Title = "图片" }

[2] 调用分享接口

  1. //分享文本
  2. await umengClient.ShareTextAsync(text);
  3. //分享链接
  4. await umengClient.ShareLinkAsync(link);
  5. //分享图片
  6. await umengClient.SharePictureAsync(picture);

5 显示平台面板

调用MultiClient实例的接口时会先显示平台列表,由用户选择某一平台后再针对该平台做后续操作。

可通过调用MultiClient实例的Add方法将平台加入到列表,也可以在构造MultiClient实例时直接传入平台集合,加入MultiClient实例的顺序或传入的平台集合的顺序决定各平台在列表的显示顺序(从上至下)。

示例:

  1. List<UmengClient> clients = new List<UmengClient>()
  2. {
  3. new SinaWeiboClient(Your_Umeng_App_Key),
  4. new RenrenClient(Your_Umeng_App_Key),
  5. new QzoneClient(Your_Umeng_App_Key),
  6. new TencentWeiboClient(Your_Umeng_App_Key),
  7. new DoubanClient(Your_Umeng_App_Key),
  8. new WeixinClient(Your_Umeng_App_Key, Your_WeiXin_AppId),
  9. new FaceBookClient(Your_Umeng_App_Key, Your_Facebook_AppId),
  10. new TwitterClient(Your_Umeng_App_Key, Your_Twitter_ApiKey, Your_Twitter_ApiSecret)
  11. };
  12. UmengClient umengClient = new MultiClient(clients);
  13. var res = await _umengClient.ShareLinkAsync(link);

验证效果
编译并运行后,点击添加分享功能的按钮出现如下分享页,那么说明你已经集成成功了!

平台列表页 授权页 分享编辑页

6 集成微信

微信采用SSO认证方式,详情请参见快速集成中第5节集成微信

SSO名词解释 : SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
例如用户已经登录微信客户端,使用SSO授权登录时则不需要用户手动输入用户名、密码,直接点击登录即可, 因此可成为免登录.

7 应用信息注册地址列表

下面是Social SDK不同平台应用信息注册网站的地址:

平台 网址
新浪微博 http://open.weibo.com
腾讯微博 http://dev.t.qq.com
QQ空间 http://connect.qq.com/intro/login/
微信好友 http://open.weixin.qq.com
FaceBook https://developers.facebook.com
Twitter https://dev.twitter.com
人人 http://dev.renren.com
豆瓣 http://developers.douban.com/

8 绑定友盟应用标识与各开放平台

获得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

权限必须选择豆瓣广播

QQ空间

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文档)

9 FAQ

请到友盟社会化组件的帮助与支持页面

10 常见错误

设置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 网络未连接

其他平台错误码

新浪微博错误码

腾讯微博错误码

QQ和QQ空间错误码

11 技术支持

请发邮件至social-support@umeng.com。如果您出现的问题和SDK相关,请说明您使用的是WindowsPhone的SDK,我们会尽快回复您。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注