Microsoft Graph SDK for ObjC
通过将其集成到您的 iOS 和 MacOS 应用程序中开始使用 Microsoft Graph SDK for ObjectiveC!
安装
使用 CocoaPods
您可以通过 CocoaPods 使用最新版本。在您的 Podfile 中包含以下行
pod 'MSGraphClientSDK'
使用 Carthage
您也可以选择使用 Carthage 进行包管理。
-
使用从他们的网站下载的下载文件或在使用 Homebrew 时
brew install carthage
在您的 Mac 上安装 Carthage。 -
您必须创建一个
Cartfile
,列出此项目在 Github 上的 MSGraphClientSDK 库。
github "microsoftgraph/msgraph-sdk-objc" "tags/<latest_release_tag>"
-
运行
carthage update
。这将在Carthage/Checkouts
文件夹中获取依赖项,然后构建 MSGraphClientSDK 库。 -
在应用程序目标“常规”设置标签页的“链接框架和库”部分中,将磁盘上的
Carthage/Build
文件夹中的MSGraphClientSDK.framework
拖放到您的应用程序目标中。 -
在您的应用程序目标“构建阶段”设置标签页中,单击“+”图标并选择“新建运行脚本阶段”。创建一个运行脚本,在其中指定您的shell(例如:
/bin/sh
),然后在shell下方的脚本区域添加以下内容
/usr/local/bin/carthage copy-frameworks
并在“输入文件”下添加您想要使用的框架路径,例如:
$(SRCROOT)/Carthage/Build/iOS/MSGraphClientSDK.framework
此脚本绕过由通用二进制文件触发的App Store提交错误,确保在存档时复制必要的位代码相关的文件和dSYMs。
将调试信息复制到构建产品目录后,Xcode将能够在您停止在断点时符号化堆栈跟踪。这将使您能够在调试器中单步执行第三方代码。
当将您的应用程序存档以提交给App Store或TestFlight时,Xcode还会将这些文件复制到您的应用程序的.xcarchive
捆绑包的dSYMs子目录中。
先决条件
每次对Microsoft Graph的网络调用都需要进行身份验证。为此,创建MSHTTPClient实例时需要将MSAuthenticationProvider协议的实例作为参数。
您可以通过两种方式创建MSAuthenticationProvider实例:
MSGraphMSALAuthProvider
使用此仓库通过MSAL处理身份验证场景。
通过编写自己的MSAuthenticationProvider实现
您也可以选择通过任何适合您需求的方式处理身份验证。您需要遵循以下步骤,以便此SDK能与您的身份验证机制交互。
-
集成功后,您需要创建新文件以提供MSAuthenticationProvider的实现。
-
在此文件中,编写以下MSAuthenticationProvider方法的实现:
- (void) getAccessTokenWithCompletion:(void (^)(NSString *accessToken, NSError *error))completion;
此实现应能够与您的身份验证机制进行交互,以获取访问令牌或过程中的任何错误,并在完成块中返回。
如何使用SDK
假设您已经完成了上面的步骤,现在您将拥有
-
一个与MSGraphClientSDK pod或MSGraphClientSDK.framework集成的 Aurora xcworkspace 文件。
-
实现了 MSAuthenticationProvider 协议的类的实例。
完成上述步骤后,您需要按照以下步骤进行
- 按照以下方式,从 MSClientFactory 中创建一个 MSHTTPClient 的实例
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
- 配置一个原生的请求对象,可能看起来像下面这样
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/me"]]];
- 通过 MSHTTPClient,以以下方式创建一个 MSURLSessionTask(例如 DataTask)对象,并在上面调用 execute 方法
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
//Do something
}];
[meDataTask execute];
这就完成了。您现在已成功调用 graph 服务器请求用户信息。