• Stars
    star
    661
  • Rank 68,192 (Top 2 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created over 9 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

整合第三方 SDK 微信、微博、 QQ 等为统一的 Diplomat 接口。

Diplomat

统一第三方 SDKs 的登录和分享接口。目前支持微信QQ微博
P.S: 其中除微博支持 OAuth ,其它第三方只支持 SSO ,需安装相应的客户端才能使用。

使用

  1. 通过 CocoaPods 安装。
    pod 'Diplomat'
    选择性安装
    pod 'Diplomat/Wechat'
    pod 'Diplomat/QQ'

  2. 导入需要使用的第三方 SDK。
    #import <Diplomat/WechatProxy.h>
    #import <Diplomat/QQProxy.h>

  3. 使用

// 在 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 是用来携带额外的信息。
微信分享场景的选择:

DTMessage *message = DTMessage()
// ...
message.userInfo = @{kWechatSceneTypeKey: @(WXSceneTimeline)}
// WXSceneTimeline: 朋友圈(默认)、WXSceneSession: 好友、WXSceneFavorite: 收藏。

通过 Safari 分享到 QZone (感谢 @hi-guy 贡献):

DTMessage *message = DTMessage()
// ...
message.userInfo = @{kTencentQQSceneTypeKey: @(TencentSceneZone)}
// TencentSceneQQ: 通过 QQ 客户端分享(默认,包含了分享到 QZone 选项), 
// TencentSceneZone: 通过 Safari 只分享到 QZone (有 QQ 客户端时不推荐使用)。

扩展第三方 SDK (详见实现逻辑)

  1. 实现协议 DiplomatProxyProtocol
  2. 添加将 DTMessage 转换到第三方 SDK 的方法。
  3. 将实现的自定义扩展注册到 Diplomat 中。

More Repositories

1

FileDownloader

Multitask、MultiThread(MultiConnection)、Breakpoint-resume、High-concurrency、Simple to use、Single/NotSingle-process
Java
11,031
star
2

okdownload

A Reliable, Flexible, Fast and Powerful download engine.
Java
5,178
star
3

MagicProgressWidget

MagicProgressCircle & MagicProgressBar
Java
728
star
4

ShareLoginLib

ThirdParty login and share lib
Java
702
star
5

QiniuImageLoader

在Android上结合七牛提供的API,让加载图片更有效、更节流、更简单、更可控、更酷
Java
524
star
6

okcheck

Incremental scan,integrate Lint、KtLint、UnitTest、Checkstyle、Findbugs、Pmd, powerful and easy to use
Groovy
309
star
7

LingoRecorder

LingoRecorder is a better recorder for Android, you can easily process pcm from it.
Java
184
star
8

FuriganaTextView

A simple wrapper view for UITextView that can display Furiganas.
Swift
133
star
9

SpanEllipsizeEnd

处理 Span 在 最大宽度文字尾省略号,无效的问题。
Java
89
star
10

Multi-Scale-BERT-AES

Demo for the paper "On the Use of BERT for Automated Essay Scoring: Joint Learning of Multi-Scale Essay Representation"
Python
56
star
11

tensorflow-dkt

Build DKT (Deep Knowledge Tracing) model with TensorFlow
Python
47
star
12

OnlineScorer-Wechat

流利说在线录音打分微信版SDK
JavaScript
37
star
13

OnlineScorer-Android

C
12
star
14

OnlineScorer-iOS

OnlineScorerRecorder for iOS
Objective-C
9
star
15

Mercury

Kotlin
9
star
16

OnlineScorer-Web

JavaScript
6
star
17

open-asr

Python
5
star
18

language-coursescript

Syntax highlighting and snippets for CourseScript.
CoffeeScript
3
star
19

open-wechat-scorer

Server-side SDK for Liulishuo Open Platform
Python
1
star
20

PTSDK-iOS

PTSDK Framework for iOS
Swift
1
star
21

cares

A forked c-ares repository to make GRPC compilation less painful
C
1
star