








registerApp:identifier:方法注册业务方基本信息。@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[ADTOpenAuthAPI registerApp:kOpenAppId
identifier:kOpenBundleId];
//...
return YES;
}handleOpenURL:delegate:方法处理授权结果,并将 AppDelegate 设为代理。- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
if ([ADTOpenAuthAPI handleOpenURL:url
delegate:self]) {
return YES;
}
return NO;
}onResp:方法中回调,如果成功会返回 authCode 授权码,用于业务方服务端做 SSO 鉴权。@interface AppDelegate () <ADTOpenAuthAPIDelegate>
//...
#pragma mark ADTOpenAuthAPIDelegate
- (void)onResp:(ADTBaseResp *)resp {
if ([resp isKindOfClass:[ADTOpenAuthResp class]]) {
ADTOpenAuthResp *authResp = (ADTOpenAuthResp *)resp;
NSString *authCode = authResp.authCode;
// 将授权码 authCode 交给服务端做SSO鉴权
}
}sendReq:onViewController:方法发起登录鉴权,如果在 LSApplicationQueriesSchemes 条目中添加了钉钉跳转白名单,会优先尝试跳转钉钉进行鉴权,否则吊起应用内 H5 页面进行鉴权。请求中的参数 redirectUrl 需要与开放平台配置的重定向 URL 保持一致。- (void)tryAuthLogin {
ADTOpenAuthReq *req = [ADTOpenAuthReq new];
// 必选参数
req.redirectUrl = @"https://www.dingtalk.com/auth";
req.responseType = @"code";
req.scope = @"openid corpid";
req.prompt = @"consent";
// 建议添加一个随机数,作用见下面文档
//req.state = @"defaultState";
//当H5授权时,会使用此viewController做present一个网页;如果传nil,会导致无法打开授权H5网页.
BOOL result = [ADTOpenAuthAPI sendReq:req onViewController:self];
if (result) {
NSLog(@"授权登录 发送成功.");
}
else {
NSLog(@"授权登录 发送失败.");
}
}| 参数 | 是否必填 | 备注 |
|---|---|---|
| appId | 是 | 钉钉开放平台应用标识,即第一步中获取的AppKey。 |
| redirectUri | 是 | 创建应用时填写的回调域名,仅用于校验域名是否一致,不会跳转。说明需要与创建应用时填写的回调域名保持一致。 |
| responseType | 是 | 当前只支持固定值code,授权通过后返回authCode。 |
| scope | 是 | 应用授权作用域。授权页面显示的授权信息以应用注册时配置的为准当前只支持两种输入:"openid":授权后可获得用户openid。"openid corpid":授权后可获得用户openid和登录过程中用户选择的组织corpId。 |
| nonce | 否 | 字段值任意填写,授权登录后原样返回。 |
| state | 否 | 用于保持请求和回调的状态,授权请求后原样带回给第三方。说明该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验。 |
| prompt | 否 | 固定值为consent,会进入授权确认页。 |

【钉钉】API开发者 微信交流群
用微信扫右侧二维码,加入【钉钉】API开发者 交流群,互助沟通

扫码加入交流群