gpt4 book ai didi

ios - ADALiOS AcquireToken()

转载 作者:行者123 更新时间:2023-11-28 15:58:34 26 4
gpt4 key购买 nike

我已经使用 ADALiOS 获得并尝试了许多示例。如您所知,ADALiOS 不断更改其实现。因为我是swift的初学者,所以我不知道如何从网上制作样本。

我尝试了 adal 3.0(预发布)版本。如您所见,以下代码是从下载的示例之一复制而来的。每个样本在 authContext.acquireToken() 或 acquireTokenwithResource() 方法中都有一个编译器错误,例如“缺少参数标签策略...”或“无法转换 ADAuthenticationResult...”,无论其 adal 版本如何。任何人都可以帮助我吗?错误消息是关于 completionBlock:....

谢谢

authContext.acquireToken(withScopes: [Any](), additionalScopes: [Any](), clientId: clientId, redirectUri: redirectURL, identifier: id!, promptBehavior: prompt, extraQueryParameters: "", completionBlock: <#T##ADAuthenticationCallback!##ADAuthenticationCallback!##(ADAuthenticationResult?) -> Void#>){
if result.status.value != AD_SUCCEEDED.value {
// Failed, return error description
completionHandler(false, result.error.description)
}
else {
// Succeeded, return the acess token
var token = result.accessToken
// Initialize the dependency resolver with the logged on context.
// The dependency resolver is passed to the Outlook library.
self.dependencyResolver = ADALDependencyResolver(context: authContext, resourceId: self.outlookResource, clientId: self.clientId, redirectUri: self.redirectURL)
completionHandler(true, token)
}
}

最佳答案

我刚刚使用 adal 3.0(预发行版)完成了这项工作。查看示例时,ADAL API 似乎发生了变化。我找不到 acquireTokenwithResource() 所以我使用了:

acquireToken(withScopes: additionalScopes: clientId: redirectUri: identifier:, promptBehavior:)

我认为我遇到的最大问题是没有在此处注册 native 应用程序:https://apps.dev.microsoft.com

在我这样做并使用 apps.dev.microsoft 中的 clientId 和 redirectURI 并包含正确的范围之后,我能够进行身份验证并取回 accessToken。

我的 acquireToken 看起来像这样:

 func acquireAuthToken(completion: ((AuthenticationResult) -> Void)?) {

let identity = ADUserIdentifier(id: "Default email address", type: ADUserIdentifierType(rawValue:1))



self.context.acquireToken(withScopes: ["User.Read"], additionalScopes: nil, clientId: AppData.sharedInstance?.clientId, redirectUri: URL(string: (AppData.sharedInstance?.redirectUriString)!), identifier: identity, promptBehavior: AD_PROMPT_AUTO) {
(result) in

if let handler = completion {
if result!.status == AD_SUCCEEDED {
self.accessToken = result!.token

handler(AuthenticationResult.Success)
}
else {
handler(AuthenticationResult.Failure(result!.error))
}
}
}
}

上下文只是 ADAuthenticationContext(authority: ppData.sharedInstance?.authority, .Authority, error: &error)

HTH

关于ios - ADALiOS AcquireToken(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41404947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com