ReadMe
为了方便第三方开发者快速集成微博 SDK,我们提供了以下联系方式,协助开发者进行集成:
QQ群:453830884(iOS 请加此群) 226214250(此群已满) 263989257(此群已满)
284084420(此群已满)
邮箱:[email protected]
微博:移动新技术
此外,关于 SDK 的 Bug 反馈、用户体验以及好的建议,请尽量提交到 Github 上,我们会尽快解决。
目前,我们正在逐步完善微博 SDK,争取为第三方开发者提供一个规范、简单易用、可靠、可扩展、可定制的 SDK,敬请期待。
概述
微博 iOS 平台 SDK 为第三方应用提供了简单易用的微博 API 调用服务,使第三方客户端无需了解复杂的验证机制即可进行授权登录,并提供微博分享功能,可直接通过微博官方客户端分享微博。
## 快速集成 WeiboSDK 支持使用 Cocoapods 集成,请在 Podfile 中添加以下语句:
pod "Weibo_SDK", :git => "https://github.com/sinaweibosdk/weibo_ios_sdk.git"
## API 文档 http://sinaweibosdk.github.io/weibo_ios_sdk/index.html
## 常见问题 FAQ https://github.com/sinaweibosdk/weibo_ios_sdk/blob/master/FAQ.md
名词解释
名词 | 注释 |
---|---|
AppKey | 分配给每个第三方应用的 app key。用于身份验证,显示来源等功能。 |
RedirectURI | 应用回调页面,可在新浪微博开放平台->我的应用->应用信息->高级应用->授权设置->应用回调页中找到。 |
AccessToken | 表示用户身份的 token,用于微博 API 的调用。 |
Expire in | 过期时间,用于判断登录是否过期。 |
功能列表
1. 认证授权
为开发者提供 OAuth2.0 授权认证,并集成 SSO 登录功能。
2. 微博分享
支持将信息从第三方应用分享到微博,目前只支持通过微博官方客户端进行分享。
3. 登入登出
微博登入按钮主要用于简化用户的 SSO 登录,实际上,它内部是对 SSO 认证流程的简单封装。
微博登出按钮主要提供一键登出功能,帮助开发者主动取消用户的授权。
适用范围
使用此 SDK 需满足以下条件
- 在新浪微博开放平台注册并创建应用
- 已定义本应用的授权回调页
- 已选择应用为 iOS 平台,并正确填写 Bundle id 和 apple id
注:关于授权回调页,对于移动客户端应用来说,用户是不可见的,因此定义为何种形式都将不影响,但是如果没有定义将无法使用 SDK 进行认证登录。建议使用默认回调页 https://api.weibo.com/oauth2/default.html
iOS9的适配问题
由于 iOS9 的发布影响了微博 SDK 与应用的集成方式,为确保良好的应用体验,我们需要采取以下措施:###1. 对传输安全的支持 在新一代的 iOS 系统中,默认需要为每次网络传输建立 SSL。解决这个问题有两种方法:
- A.建立白名单并将其添加到您应用的 Info.plist 中
如果未添加,可能会遇到“发生SSL错误,无法建立到服务器的安全连接”等问题。
- B. 强制将NSAllowsArbitraryLoads属性设置为YES,并添加到应用的plist中
- NSAppTransportSecurity NSAllowsArbitraryLoads
###2. 对应用跳转的支持 如果需要使用微博的相关功能,如登录、分享等,并且需要实现跳转到微博的功能,在iOS9系统中,需要在应用的plist中添加以下键值对。否则,在执行canOpenURL函数时,将返回NO。详情请参考https://developer.apple.com/videos/wwdc/2015/?id=703
- LSApplicationQueriesSchemes sinaweibohd sinaweibo weibosdk weibosdk2.5 weibosdk3.3
###3. 应用瘦身与bitcode 苹果在iOS9的SDK中添加了对应用瘦身的支持,其中包括bitcode。我们也在最新的代码中添加了对bitcode的支持。
关于ADSupport集成的问题
关于第三方应用开发者是否集成本地ADSupport.framework的问题:
-
如果开发者希望集成本地ADSupport.framework,在提交ipa到店面时,勾选用于跟踪用户广告效果的选项即可。具体操作可参考友盟 http://bbs.umeng.com/forum.php?mod=viewthread&tid=6242&aid=1611&from=album&page=1&mobile=2
-
如果开发者希望不集成本地ADSupport.framework,可直接删除,使用微博SDK并不强制要求第三方开发者集成本地ADSupport.framework。不集成本地ADSupport.framework不会影响WeiboSDK的正常使用。
关于IPv6支持的问题
由于苹果商店从6月1日起强制应用程序支持IPv6-only网络,微博SDK这边也做了相应的支持,更新了使用的底层网络代码,包括reachability库。
iOS10的适配问题
由于iOS10的发布,原有的ATS设置在iOS10上会导致https网络访问受限的问题。为了确保良好的应用体验,我们需要采取以下措施:
-
<key>sina.com.cn</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSExceptionMinimumTLSVersion</key> <string>TLSv1.0</string> <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/> </dict>
需要在每个域名下添加NSExceptionMinimumTLSVersion这样的key,值的部分为TLSv1.0
3.2.0版本更新
微博移动SDK 3.2 围绕“分享+连接”这个核心主题,面向开发者,主要规划了4个功能模块:SDK初始化、使用微博账号登录、分享到微博、连接到微博。其他功能已迁移、下线或在未来的版本中将下线。具体变动的功能如下:
- 热评与关系化组件下线
- 私信分享功能及私信应用推荐功能下线
- SDK不再包裝访问openAPI的接口,SDK对外提供的网络访问工具WBHttpRequest也将逐步下线。开发者在使用微博openAPI接口时,需要使用自己的网络模块并按照平台的接口文档进行调用
- 短信注册登录功能下线
- 多媒体分享功能整体修改,在微博客户端7.5.0及以后的版本中,分享到发布器的多媒体对象将不再以linkcard显示,转而以文本链接的形式插入到分享的文本中。该功能的修改不会影响到分享内容在信息流中的显示,凡是经过商务对接的第三方,发出去的多媒体对象在信息流中就会显示linkcard。并且该功能将在后期进一步修改。
在新的SDK中还有部分功能未完善,将在近期的版本更新中逐步完善:
- 由于部分H5模块对TLS1.2的支持存在问题,因此目前SDK的ATS还不能完全打开
- 连接到微博的功能还有部分不太完善,将在后期的版本中逐步修改
3.2.1版本更新
微博移动SDK 3.2.1版本在精简原有统计功能的基础上,更新了原有的分享功能,使分享功能更加多样化。具体变更如下:
- 统计功能调整,预计后期以组件形式提供
- 原有的图片分享功能从单张图纸的形式,扩展为相册多图和视频模式
- 新增分享到Story的功能,支持单图或视频形式
3.2.5版本更新
微博移动SDK 3.2.5版本的变更如下:
- 替换UIWebView控件
- 适配iOS 13,禁用暗黑模式,全屏展示页面
- 删除无用代码及“支付”相关字符,优化内容,缩减包大小
3.2.6版本更新
微博移动SDK 3.2.6版本的变更如下:
- 修复部分页面适配问题及iTunes下载链接失效问题
- 修复issue中部分问题
- 修改文档,增加常见问题解答
3.2.7版本更新
微博移动SDK 3.2.7版本的变更如下:
- 替换NSURLConnection相关API
- 替换UIAlertView相关API
- 增加i386架构
3.3.0版本更新
微博移动SDK 3.3.0版本的变更如下:
- 增加支持universalLink分享跳转
- 修改iOS 14分享多图和视频丢数据问题
- 可以设置不获取idfa
- 删除分享获取相册权限
注意:更新到3.3.0版本后,一定要在工程scheme白名单中添加weibosdk3.3,否则iOS 14的配置将无法生效