第一步:将 SDK 导入到你的工程中

  • 登录机智云官方网站下载并解压最新版本的SDK。如果您还尚未下载,请 点击这里下载

  • 将解压后的 GizDataAccess.framework 拖动并复制到项目的 Frameworks 目录即可

第二步:引入头文件和注册 SDK 的 AppID

  • 登录机智云官方网站查看产品信息获得 AppID 。如果尚未注册,请点击这里注册 初始化 SDK
  • 打开 AppDelegate.m(代表你的工程名字) 导入文件头

    import < GizDataAccess/GizDataAcess.h> 

  • 在 - (BOOL)application:didFinishLaunchingWithOptions:方法中调用 startWithAppID 方法来初始化 SDK,指定APPID.

    - (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions {
        //Init SDK
        [GizDataAccess startWithAppID:@“APP_ID”];

    // ……

    return YES; }

第三步:用户登录

  • 注册用户登录委托 如下 GizDataAccessLogin* gdaLogin = [[GizDataAccessLogin alloc] initWithDelegate:YOUR_LOGIN_DELEGATE];

  • 实现用户登录的委托方法 如下

    - (void)gizDataAccessDidLogin:(GizDataAccessLogin )login uid:(NSString )uid token:(NSString )token result:(GizDataAccessErrorCode)result message:(NSString )message {
        if(result == kGizDataAccessErrorNone) {
            // 登录成功
            // ……
        }
        else {
            // 登录失败
            // ……
        }
    }

  • 用户登录

当前版本提供匿名登录方式,SDK会生成默认的用户名。

如下 [gdaLogin loginAnonymous];

第四步:数据接入

  • 注册 数据接入委托 如下 GizDataAccessSource* gdaSource = [[GizDataAccessSource alloc] initWithDelegate:YOUR_DATAACCESS_DELEGATE];

数据上传

  • 实数据上传的委托方法如下
    - (void)gizDataAccessDidSaveData:(GizDataAccessSource )source result:(GizDataAccessErrorCode)result message:(NSString )message {
        if(result == kGizDataAccessErrorNone) {
            // 数据上传成功
            // ……
        }
    }
  • 数据上传

数据上传时,应指定数据的产生时间,数据格式为标准的JSON。

如下 [gdaSource saveData:@“YOUR_LOGIN_TOKEN” productKey:@“YOUR_BT_PRODUCT_KEY” deviceSN:@“YOUR_BT_DEVICE_SN” timestamp:DATA_TIMESTAMP attributes:@“YOUR_DATA”];

获取数据

  • 实现获取数据的委托方法

获取到的数据内容,按以下键值对方式提供:

@"attrs" : { [dynamic_keys] : [dynamic_values], ... },

@"uid" : [uid],

@"sn" : [sn],

@"ts" : [ts],

@"product_key" : [product_key]

  • 如下
    - (void)gizDataAccessDidLoadData:(GizDataAccessSource )source data:(NSArray )data result:(GizDataAccessErrorCode)result errorMessage:(NSString )message {
        if(result == kGizDataAccessErrorNone) {
            // 获取数据成功
            for(NSDictionary dict in data) {
                NSString sn = [dict valueForKey:@"device_sn"];
                NSString productkey = [dict valueForKey:@"product_key"];
                NSString uid = [dict valueForKey:@"uid"];
                NSNumber nTS = [dict valueForKey:@"ts"];
                NSDictionary* attributes = [dict valueForKey:@"attrs"];
        NSLog(@"sn:%@ productkey:%@ uid:%@ nTS:%@ attributes:%@", sn, productkey, uid, nTS, attributes);
    }
    

    } }

    * 获取数据

获取数据时,需指定起止时间段。如果limit值为0将只返回20条数据,若skip值为负数,则获取失败。

如下 [gdaSource loadData:@“YOUR_LOGIN_TOKEN” productKey:@“YOUR_BT_PRODUCT_KEY” deviceSN:@“YOUR_BT_DEVICE_SN” startTime:START_DATA_TIME endTime:END_DATA_TIME limit:20 skip:0];

Error codes

code message
0 success
9002 product_key invalid
9003 appid invalid
9004 token invalid
9006 token expired
9008 server error
9006 token expired
9008 server error
9015 form invalid
9999 reserved