Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lingochamp/diplomat
整合第三方 SDK 微信、微博、 QQ 等为统一的 Diplomat 接口。
https://github.com/lingochamp/diplomat
ios ios-sdk qq qq-qzone social-login wechat wechat-sdk weibo weibo-sso-login
Last synced: 2 days ago
JSON representation
整合第三方 SDK 微信、微博、 QQ 等为统一的 Diplomat 接口。
- Host: GitHub
- URL: https://github.com/lingochamp/diplomat
- Owner: lingochamp
- License: mit
- Created: 2015-06-12T18:11:33.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-12T09:37:33.000Z (about 7 years ago)
- Last Synced: 2024-03-15T10:20:55.701Z (8 months ago)
- Topics: ios, ios-sdk, qq, qq-qzone, social-login, wechat, wechat-sdk, weibo, weibo-sso-login
- Language: Objective-C
- Homepage:
- Size: 65.5 MB
- Stars: 660
- Watchers: 23
- Forks: 80
- Open Issues: 3
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
## Diplomat
统一第三方 SDKs 的登录和分享接口。目前支持**微信**、 **QQ** 、**微博**。
P.S: 其中除微博支持 OAuth ,其它第三方只支持 SSO ,需安装相应的客户端才能使用。### 使用
1. 通过 CocoaPods 安装。
``` pod 'Diplomat' ```
选择性安装
``` pod 'Diplomat/Wechat' ```
``` pod 'Diplomat/QQ' ```2. 导入需要使用的第三方 SDK。
``` #import ```
``` #import ```3. 使用
```objc
// 在 application:didFinishLaunchingWithOptions: 添加
[[Diplomat sharedInstance] registerWithConfigurations:@{kDiplomatTypeWechat: @{kDiplomatAppIdKey: @"wxd930ea5d5a258f4f",
kDiplomatAppSecretKey: @"db426a9829e4b49a0dcac7b4162da6b6"},
kDiplomatTypeQQ: @{kDiplomatAppIdKey: @"222222"}}];// 授权登录。
[[Diplomat sharedInstance] authWithName:thirdPartyName
completed:^(id result, NSError *error) {
// ...
}];
// 分享。
// Create DTMessage message ...
[[Diplomat sharedInstance] share:message
name:thirdPartyName
completed:^(id result, NSError *error) {
// ...
}];
```### DTMessage 中 userInfo 的使用。
userInfo 是用来携带额外的信息。
微信分享场景的选择:
```objc
DTMessage *message = DTMessage()
// ...
message.userInfo = @{kWechatSceneTypeKey: @(WXSceneTimeline)}
// WXSceneTimeline: 朋友圈(默认)、WXSceneSession: 好友、WXSceneFavorite: 收藏。
```通过 Safari 分享到 QZone (感谢 [@hi-guy](https://github.com/hi-guy) 贡献):
```objc
DTMessage *message = DTMessage()
// ...
message.userInfo = @{kTencentQQSceneTypeKey: @(TencentSceneZone)}
// TencentSceneQQ: 通过 QQ 客户端分享(默认,包含了分享到 QZone 选项),
// TencentSceneZone: 通过 Safari 只分享到 QZone (有 QQ 客户端时不推荐使用)。
```### 扩展第三方 SDK (详见实现逻辑)
1. 实现协议 *DiplomatProxyProtocol* 。
2. 添加将 *DTMessage* 转换到第三方 SDK 的方法。
3. 将实现的自定义扩展注册到 *Diplomat* 中。