TikTok OpenSDK for iOS
简介
TikTok OpenSDK是一个框架,使您的用户能够使用他们的TikTok账户登录您的应用,并在TikTok上分享图片和视频。此SDK可通过Swift包管理器和Cocoapods进行下载。
入门
最低iOS版本是11.0,最低XCode版本是9.0。有关详细信息,请参见iOS快速入门。
开发者门户应用
在我们的开发者门户中注册开发者账户。申请批准后,开发者门户将为您提供一个客户端密钥
和客户端密钥
。请参阅此处了解如何注册您的应用程序。在继续之前,请确保通过访问“管理应用程序”页面,并在您的开发者账户中点击“+ 添加产品”,将登录套件和/或共享套件添加到您的应用程序中。
安装SDK
Swift包管理器
将库作为Swift包添加到您的Xcode项目中
- 点击
文件 -> 添加包...
- 粘贴存储库URL:
https://github.com/tiktok/tiktok-opensdk-ios
- 选择
依赖规则
->至下一个主版本
,并输入您想要的(例如2.2.0
) - 选择
添加到项目
-> 您的项目 - 点击
复制依赖项
并选择所需的库(《TikTokOpenAuthSDK》、《TikTokOpenSDKCore》、《TikTokOpenShareSDK》)
Cocoapods
- 将以下内容添加到您的Podfile
pod 'TikTokOpenSDKCore'
pod 'TikTokOpenAuthSDK'
pod 'TikTokOpenShareSDK'
- 运行
pod install --repo-update
配置您的Xcode项目
- 打开您的Info.plist文件,并添加/更新以下键。
- 将以下值添加到
LSApplicationQueriesSchemes
- 为登录组件添加
tiktokopensdk
- 为分享组件添加
tiktoksharesdk
- 添加
snssdk1233
和snssdk1180
以检查设备上是否安装了TikTok。
- 为登录组件添加
- 使用应用的
Client Key
作为值添加键TikTokClientKey
。 - 将应用的
Client Key
添加到CFBundleURLSchemes
。
- 将以下值添加到
<key>LSApplicationQueriesSchemes</key>
<array>
<string>tiktokopensdk</string>
<string>tiktoksharesdk</string>
<string>snssdk1180</string>
<string>snssdk1233</string>
</array>
<key>TikTokClientKey</key>
<string>$TikTokClientKey</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>$TikTokClientKey</string>
</array>
</dict>
</array>
- 将以下代码添加到应用的AppDelegate中
import TikTokOpenSDKCore
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ app: UIApplication,open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
if TikTokURLHandler.handleOpenURL(url) {
return true
}
return false
}
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
if TikTokURLHandler.handleOpenURL(userActivity.webpageURL) {
return true
}
}
return false
}
}
- 如果应用有SceneDelegate文件,将以下代码添加其中
import TikTokOpenSDKCore
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
func scene(_ scene: UIScene,
openURLContexts URLContexts: Set<UIOpenURLContext>) {
if TikTokURLHandler.handleOpenURL(URLContexts.first?.url) {
return
}
}
}
登录组件使用
登录组件功能依赖于TikTokOpenSDKCore
和TikTokOpenAuthSDK
库,因此在添加包或cocoapods时务必选择这些库。以下代码片段展示了如何创建授权请求和处理响应。更多信息请参见iOS登录组件快速入门。
import TikTokOpenAuthSDK
let authRequest = TikTokAuthRequest(scopes: ["user.info.basic"], redirectURI: "https://www.example.com/path")
authRequest.send { response in
let authResponse = response as? TikTokAuthResponse else { return }
if authResponse.errorCode == .noError {
print("Auth code: \(authResponse.code)")
} else {
print("Authorization Failed!
Error: \(authResponse.error ?? "")
Error Description: \(authResponse.errorDescription ?? ""))
}
}
您的应用负责保留对请求的强引用,以便接收响应回调。您可以在处理完响应后丢弃它。
分享组件使用
分享组件功能依赖于TikTokOpenSDKCore
和TikTokOpenShareSDK
库,因此在添加包或cocoapods时务必选择这些库。以下代码片段展示了如何创建分享请求和处理响应。更多信息请参见iOS分享组件快速入门。
import TikTokOpenShareSDK
let shareRequest = TikTokShareRequest(localIdentifiers: [...], mediaType: .video, redirectURI: "https://www.example.com/path")
shareRequest.send { response in
let shareResponse = response as? TikTokShareResponse else { return }
if shareResponse.errorCode == .noError {
print("Share succeeded!")
} else {
print("Share Failed!
Error Code: \(shareResponse.errorCode.rawValue)
Error Message: \(shareResponse.errorMessage ?? "")
Share State: \(shareResponse.shareState)")
}
}
您的应用负责保留对请求的强引用,以便接收响应回调。您可以在处理完响应后丢弃它。
演示
演示应用的最低iOS版本为iOS 14.0(ShareDemo)和iOS 12.0(LoginDemo)。
- 打开
LoginDemo/TikTokLoginDemo.xcodeproj
或ShareDemo/TikTokShareDemo.xcodeproj
。 - 为了在真实iOS设备上运行演示,您需要一个正常工作的通用链接和一个具有关联域名功能的配置文件。导入您的配置文件,更新捆绑ID,并将您的通用链接域名添加到关联域名部分。如果您正在运行LoginDemo,请确保已将您的通用链接添加到开发者门户中登录工具部分的重定向URI部分。
- 以源代码方式打开
Info.plist
文件,并将${TikTokClientKey}
的使用替换为您从开发者门户获取的自己的客户端密钥。 - 运行项目以查看工具箱的实际效果。
许可协议
此源代码遵照根目录中的LICENSE文件中的许可协议。