准备工作
进入 物联网开发平台控制台 > 应用开发获取目标应用的 App Key 和 App Secret。
注意:
iOS 安装环境
安装 Xcode 开发工具。
集成 SDK 方式。
执行如下命令采用 Cocoapods 方式集成。
pod TIoTLinkKit
手动集成。
将 LinkCore 目录拖入到工程中。
Android 安装环境
安装 Android Studio 开发工具
集成 SDK 方式
依赖 maven 远程构建
implementation 'com.tencent.iot.explorer:explorer-link-android:1.0.0'
依赖本地 SDK 源码 构建
修改应用模块的 build.gradle,使应用模块依赖 SDK 源码,示例如下:
implementation project(path: ':sdk')
使用说明
1. 导入配置,初始化 SDK。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {/** 此处仅供参考, 需自建服务接入物联网平台服务,以免 App Secret 泄露* 自建服务可参考此处 https://cloud.tencent.com/document/product/1081/67504#e4359606-62fe-4f83-bb7e-576eadce8aef*/TIoTCoreAppEnvironment *environment = [TIoTCoreAppEnvironment shareEnvironment];[environment setEnvironment];environment.appKey = @"物联网开发平台申请的 App Key";environment.appSecret = @"物联网开发平台申请的 App Secret";self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[UIViewController new]];return YES;}
选择
sdkdemo/src/main/java/com/tencent/iot/explorer/link/core/demo/App.java
,配置 App key。class App : Application() {companion object {val data = AppData.instance}private val APP_KEY = "物联网开发平台申请的 App Key"private val APP_SECRET = "物联网开发平台申请的 App Secret"override fun onCreate() {super.onCreate()/** 此处仅供参考, 需自建服务接入物联网平台服务,以免 App Secret 泄露* 自建服务可参考此处 https://cloud.tencent.com/document/product/1081/67504#e4359606-62fe-4f83-bb7e-576eadce8aef*/IoTAuth.openLog(true)IoTAuth.init(APP_KEY, APP_SECRET)}override fun onTerminate() {super.onTerminate()}}
2. App SDK 功能划分说明。
iOS
iOS 对应模块 | 实现相关功能 |
QCDeviceCenter | 配网模块。 |
QCAPISets | 设备控制、消息相关、家庭管理、账户管理等 API。 |
QCFoundation | 工具类。 |
Android
Android 子模块 | 实现相关功能 |
link | 配网模块。 |
auth | 设备控制、消息相关、家庭管理、账户管理等 API。 |
utils | 工具类。 |
log | 日志模块。 |
3. 账户相关接口,包含手机号、邮箱注册,登入登出,密码操作,用户信息操作。账户详细接口请参考 官方文档, 或者 App SDK 文件中 iOS 文件 (TIoTCoreAccountSet.h) 或 Android 文件( IoTAuth.kt)。
注意:
此处仅为 Demo 演示功能,请遵从官方建议自建账户后台服务后,由自建服务接入物联网平台服务,以免 App Secret 泄露。
4. 详细功能请参考 App SDK 接入指南。
自建服务
搭建后台服务,将 App API 调用由设备端发起切换为由自建后台服务发起。
注意:
登录前所使用的 API URL 为
https://iot.cloud.tencent.com/api/exploreropen/appapi
,不建议在设备端调用,需要替换为自建的后台服务,以避免密钥的泄漏。api/studioapp/* 为公版 App 专用,OEM 的 App 使用的是应用端 API(api/exploreropen/),当在 App 参数写入配置文件中配置 TencentIotLinkAppkey 后, api/studioapp 调用将自动切换为应用端 API 调用。
App API (api/exploreropen/appapi)请在自建后台进行调用,Token API(api/exploreropen/tokenapi)可安全在设备端调用。
iOS 版本 可通过 TIoTAppEnvironment.m 的 selectEnvironmentType 方法中设置此 API 。
登录前所使用的 API URL 在 environment.oemAppApi 配置,请务必替换成自建的后台服务地址。
- (void)selectEnvironmentType {TIoTAppConfigModel *model = [TIoTAppConfig loadLocalConfigList];TIoTCoreAppEnvironment *environment = [TIoTCoreAppEnvironment shareEnvironment];[environment setEnvironment];environment.appKey = model.TencentIotLinkAppkey;environment.appSecret = model.TencentIotLinkAppSecret;// 请在 [environment setEnvironment]; 之后设置 oemAppApi 以免被覆盖。environment.oemAppApi = @"需要替换为自建后台服务地址";}
- (void)setEnvironment {//公版&开源体验版使用 当在 app-config.json 中配置 TencentIotLinkAppkey TencentIotLinkAppSecret 后,将自动切换为 OEM 版本。self.studioBaseUrl = @"https://iot.cloud.tencent.com/api/studioapp";self.studioBaseUrlForLogined = @"https://iot.cloud.tencent.com/api/studioapp/tokenapi";//OEM App 使用self.oemAppApi = @"https://iot.cloud.tencent.com/api/exploreropen/appapi"; // 需要在 TIoTAppEnvironment.m 的 -selectEnvironmentType: 中替换为自建后台服务地址。self.oemTokenApi = @"https://iot.cloud.tencent.com/api/exploreropen/tokenapi"; // 可安全在设备端调用。self.wsUrl = @"wss://iot.cloud.tencent.com/ws/explorer";self.h5Url = @"https://iot.cloud.tencent.com/explorer-h5";}
Android 版本 可通过 HttpRequest 中设置 API 。
登录前所使用的 API URL 在 OEM_APP_API 配置,请务必替换成自建的后台服务地址。
/*接口请求文件*/class HttpRequest private constructor() {companion object {// 公版&开源体验版使用 当在 app-config.json 中配置 TencentIotLinkAppkey TencentIotLinkAppSecret 后,将自动切换为 OEM 版本。const val STUDIO_BASE_URL = "https://iot.cloud.tencent.com/api/studioapp"const val STUDIO_BASE_URL_FOR_LOGINED = "https://iot.cloud.tencent.com/api/studioapp/tokenapi"// OEM App 使用const val OEM_APP_API = "https://iot.cloud.tencent.com/api/exploreropen/appapi" // 需要替换为自建后台服务地址const val OEM_TOKEN_API = "https://iot.cloud.tencent.com/api/exploreropen/tokenapi" // 可安全在设备端调用。const val APP_COS_AUTH = "https://iot.cloud.tencent.com/api/studioapp/AppCosAuth"const val BUSI_APP = "studioapp"const val BUSI_OPENSOURCE = "studioappOpensource"}}