收藏官网首页
查看: 11170|回复: 0

数据接入iOS APP开发指南

562

主题

1222

帖子

8127

积分

版主

Rank: 7Rank: 7Rank: 7

积分
8127
跳转到指定楼层
楼主
发表于 2016-7-7 15:46:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
教您5分钟接入机智云,实现傻瓜式开发
本帖最后由 Genius 于 2016-8-15 18:49 编辑

1.    第一步:将 SDK 导入到你的工程中
登录机智云官方网站下载并解压最新版本的SDK。如果您还尚未下载,请 点击这里下载,将解压后的 GizDataAccess.framework 拖动并复制到项目的 Frameworks 目录即可。
2.    第二步:引入头文件和注册 SDK 的 AppID2.1. 获取AppID
登录机智云官方网站查看产品信息获得 AppID 。如果尚未注册,请点击这里注册
2.2. 初始化 SDK
打开 *AppDelegate.m(*代表你的工程名字) 导入文件头
1

2

3

4

5

6

7

8

9

10

#import <GizDataAccess/GizDataAccess.h>

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

- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions {

    //Init SDK

    [GizDataAccess startWithAppID“APP_ID”];

  

    // ……

  

    return YES;

}


3.    第三步:用户登录3.1. 注册用户登录的委托
代码示例
1

GizDataAccessLogin* gdaLogin = [[GizDataAccessLogin alloc] initWithDelegate:YOUR_LOGIN_DELEGATE];

3.2. 实现用户登录的委托方法
代码示例
1

2

3

4

5

6

- (void)gizDataAccessDidLoginGizDataAccessLogin *)login uidNSString *)uid tokenNSString *)token resultGizDataAccessErrorCode)result messageNSString *)message {
    if(result == kGizDataAccessErrorNone) {
        // 登录成功
        // ……
    }
}

3.3. 匿名登录
匿名登录时,不需要传入任何用户信息,SDK会生成默认的用户名。登录结果通过用户登录的委托返回。
代码示例:
1

[gdaLogin loginAnonymous];

3.4. 实名登录
需要传入注册时的用户账号和密码,用户账号可以是用户名、手机号或邮箱,以及密码。登录结果通过用户登录的委托返回。
代码示例:
1

[gdaLogin login“YOUR_USERNAME” password“YOUR_PASSWORD”];

3.5. 第三方账号登录
支持百度、腾讯、新浪账号登录。需要传入登录需要用到的uid和token,以及账号类型。登录结果通过用户登录的委托返回。
代码示例:
1

[gdaLogin loginWithThirdAccountType:THIRD_ACCOUNT_TYPE uid“UID” token“TOKEN”];

4.    第四步:数据接入4.1. 注册数据接入的委托
代码示例
1

GizDataAccessSource* gdaSource = [[GizDataAccessSource alloc] initWithDelegate:YOUR_DATAACCESS_DELEGATE];

4.2. 数据上传
实现数据上传的委托方法
代码示例:
1

2

3

4

5

6

- (void)gizDataAccessDidSaveDataGizDataAccessSource *)source resultGizDataAccessErrorCode)result messageNSString *)message {
    if(result == kGizDataAccessErrorNone) {
        // 数据上传成功
        // ……
    }
}

支持批量数据上传。最后一个参数data为数组类型,可以指定每一组数据的产生时间和内容,格式为标准的JSON。上传结果,通过数据上传的委托返回。
data示例:
1

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

代码示例:
1

[gdaSource saveData“YOUR_LOGIN_TOKEN” productKey“YOUR_BLE_PRODUCT_KEY” deviceSN“YOUR_BLE_DEVICE_SN” data“YOUR_DATA”];

4.3. 获取数据
实现获取数据的委托方法
获取到的数据内容,按以下键值对方式提供:
1

2

3

4

5

@"attrs" : { [dynamic_keys] : [dynamic_values], ... },
@"uid" : [uid],
@"sn" : [sn],
@"ts" : [ts],
@"product_key" : [product_key]

代码示例:
1

2

3

4

5

6

7

8

9

10

11

12

13

14

- (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值为负数,则获取失败。数据获取结果,通过获取数据的委托返回。获取到的数据,按照时间排序,最新的数据排在最前面。
代码示例:
1

[gdaSource loadData:@“YOUR_LOGIN_TOKEN” productKey:@“YOUR_BLE_PRODUCT_KEY” deviceSN:@“YOUR_BLE_DEVICE_SN” startTime:START_DATA_TIME endTime:END_DATA_TIME limit:20 skip:0];

5.    第四步:用户账号注册、信息修改和匿名转换5.1. 用户注册
注册用户账号注册的委托
代码示例:
1

GizDataAccessLogin* gdaRegister = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_USERREGISTER_DELEGATE];

实现用户账号注册的委托方法
代码示例
1

2

3

4

5

6

- (void)gizDataAccess:(GizDataAccessLogin *)login didRegisterUser:(NSString *)uid token:(NSString *)token result:(GizDataAccessErrorCode)result message:(NSString *)message {
    if(result == kGizDataAccessErrorNone) {
        // 用户注册成功
        // ……
    }
}

通过accountType参数指定账号注册方式:用户名注册、手机号注册、邮箱注册。只有手机号注册时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。其他注册方式,验证码传nil。注册结果通过用户账号注册的委托返回。
代码示例:
1

[gdaRegister registerUser:@“YOUR_USERNAME” password:@“YOUR_PASSWORD” code:@“YOUR_PHONE_VERIFYCODE” accountType:YOUR_THIRD_ACCOUNT_TYPE];

5.2. 修改密码
注册密码修改的委托
代码示例:
1

GizDataAccessLogin* gdaResetPassword = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_PASSWORD_RESET_DELEGATE];

实现密码修改的委托方法
代码示例:
1

2

3

4

5

6

- (void)gizDataAccess:(GizDataAccessLogin *)login didChangeUserPassword:(GizDataAccessErrorCode)result message:(NSString *)message {
    if(result == kGizDataAccessErrorNone) {
        // 密码重置成功
        // ……
    }
}

5.3. 重置密码
可以通过手机号和邮箱重置密码。accountType指定是手机号重置还是邮箱重置,只有手机号重置时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。邮箱重置时,手机验证码传nil。重置结果通过密码修改的委托返回。
代码示例:
1

[gdaResetPassword resetPassword:@“YOUR_USERNAME” code:@“YOUR_PHONE_VERIFYCODE” newPassword:@“YOUR_NEW_PASSWORD” accountType:YOUR_THIRD_ACCOUNT_TYPE];

5.4. 修改密码
用户实名登录后可以修改密码,修改结果通过密码修改的委托返回。
代码示例:
1

[gdaLogin changeUserPassword:@“YOUR_LOGIN_TOKEN” oldPassword:@“YOUR_OLD_PASSWORD” newPassword:@“YOUR_NEW_PASSWORD”];

5.5. 修改用户信息
注册修改用户信息的委托
代码示例:
1

GizDataAccessLogin* gdaChangeUserInfo = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_CHANGE_USER_INFO_DELEGATE];

实现修改用户信息的委托方法
代码示例:
1

2

3

4

5

6

- (void)gizDataAccess:(GizDataAccessLogin *)login changeUserPassword:(GizDataAccessErrorCode)result message:(NSString *)message {
    if(result == kGizDataAccessErrorNone) {
        // 密码重置成功
        // ……
    }
}

用户实名登录后可以修改手机号或邮箱,accountType指定是要修改手机号还是邮箱。只有修改手机号时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。修改邮箱时,验证码传nil。修改结果通过用户信息修改的委托返回。
代码示例:
1

[gdaLogin changeUserInfo:@“YOUR_TOKEN” username:@“YOUR_USERNAME” code:@“YOUR_PHONE_VERIFYCODE” accountType:THIRD_ACCOUNT_TYPE];

5.6. 匿名转换
注册匿名转换的委托
代码示例:
1

GizDataAccessLogin* gdaLogin = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_ANONYMOUS_TRANS_DELEGATE];

实现匿名转换的委托方法
代码示例:
1

2

3

4

5

6

- (void)gizDataAccess:(GizDataAccessLogin *)login didTransAnonymousUser:(GizDataAccessErrorCode)result message:(NSString *)message {
    if(result == kGizDataAccessErrorNone) {
        // 匿名转换成功
        // ……
    }
}

匿名登录后,可以转换成普通用户、手机号用户或邮箱用户,您可以通过accountType参数指定要转换的用户类型。转成手机号用户时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。其他用户类型,验证码传nil。转换结果通过匿名转换的委托返回。
代码示例:
1

[gdaLogin transAnonymousUser:@“YOUR_TOKEN” username:@“YOUR_USERNAME” password:@“YOUR_NEW_PASSWORD” code:@“YOUR_PHONE_VERIFYCODE” accountType:THIRD_ACCOUNT_TYPE];

5.7. 获取手机验证码
注册手机验证码的委托
GizDataAccessLogin* gdaVerifyCode = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_VERIFYCODE_DELEGATE];
实现手机验证码的委托方法
代码示例:
1

2

3

4

5

6

- (void)gizDataAccess:(GizDataAccessLogin *)login didRequestSendVerifyCode:(GizDataAccessErrorCode)result message:(NSString *)message {
    if(result == kGizDataAccessErrorNone) {
        // 获取到了手机验证码
        // ……
    }
}

在用户注册、信息修改、匿名用户转换等过程中,手机验证码可以通过此方法获取。验证码通过手机验证码的委托返回。
代码示例:
1

[gdaLogin requestSendVerifyCode: @“PHONE_VERIFYCODE”];

6.    用户账号类型
code
message
0
normal user
1
phone user
2
email user
7.    第三方账号类型
code
message
0
sina account
1
baidu account
2
qq account
8.    错误码
code
message
0
success
8001
connection_failed
8002
connection_timeout
8003
invalid parameters
9002
product_key invalid
9003
appid invalid
9004
token invalid
9005
user not exists
9006
token expired
9008
server error
9009
code expired
9010
code invalid
9015
form invalid
9018
phone unavailable
9019
username unavailable
9020
username or password   error
9999
reserved

1、机智云QQ群: 287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-kit
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表