数据接入iOS APP开发指南
本帖最后由 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)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Init SDK
;
// ……
return YES;
}
3. 第三步:用户登录3.1. 注册用户登录的委托代码示例
1
GizDataAccessLogin* gdaLogin = [ initWithDelegate:YOUR_LOGIN_DELEGATE];
3.2. 实现用户登录的委托方法代码示例
1
2
3
4
5
6
- (void)gizDataAccessDidLogin:(GizDataAccessLogin *)login uid:(NSString *)uid token:(NSString *)token result:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 登录成功
// ……
}
}
3.3. 匿名登录匿名登录时,不需要传入任何用户信息,SDK会生成默认的用户名。登录结果通过用户登录的委托返回。代码示例:
1
;
3.4. 实名登录需要传入注册时的用户账号和密码,用户账号可以是用户名、手机号或邮箱,以及密码。登录结果通过用户登录的委托返回。代码示例:
1
;
3.5. 第三方账号登录支持百度、腾讯、新浪账号登录。需要传入登录需要用到的uid和token,以及账号类型。登录结果通过用户登录的委托返回。代码示例:
1
;
4. 第四步:数据接入4.1. 注册数据接入的委托代码示例
1
GizDataAccessSource* gdaSource = [ initWithDelegate:YOUR_DATAACCESS_DELEGATE];
4.2. 数据上传实现数据上传的委托方法代码示例:
1
2
3
4
5
6
- (void)gizDataAccessDidSaveData:(GizDataAccessSource *)source result:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 数据上传成功
// ……
}
}
支持批量数据上传。最后一个参数data为数组类型,可以指定每一组数据的产生时间和内容,格式为标准的JSON。上传结果,通过数据上传的委托返回。data示例:
1
@{@"ts": , @"attrs": @{ : , ... } }
代码示例:
1
;
4.3. 获取数据实现获取数据的委托方法获取到的数据内容,按以下键值对方式提供:
1
2
3
4
5
@"attrs" : { : , ... },
@"uid" : ,
@"sn" : ,
@"ts" : ,
@"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 = ;
NSString* productkey = ;
NSString* uid = ;
NSNumber *nTS = ;
NSDictionary* attributes = ;
NSLog(@"sn:%@ productkey:%@ uid:%@ nTS:%@ attributes:%@", sn, productkey, uid, nTS, attributes);
}
}
}
获取数据时,需指定起止时间段。如果limit值为0将只返回20条数据,若skip值为负数,则获取失败。数据获取结果,通过获取数据的委托返回。获取到的数据,按照时间排序,最新的数据排在最前面。代码示例:
1
;
5. 第四步:用户账号注册、信息修改和匿名转换5.1. 用户注册注册用户账号注册的委托代码示例:
1
GizDataAccessLogin* gdaRegister = [[ 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
;
5.2. 修改密码注册密码修改的委托代码示例:
1
GizDataAccessLogin* gdaResetPassword = [[ 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
;
5.4. 修改密码用户实名登录后可以修改密码,修改结果通过密码修改的委托返回。代码示例:
1
;
5.5. 修改用户信息注册修改用户信息的委托代码示例:
1
GizDataAccessLogin* gdaChangeUserInfo = [[ 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
;
5.6. 匿名转换注册匿名转换的委托代码示例:
1
GizDataAccessLogin* gdaLogin = [[ 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
;
5.7. 获取手机验证码注册手机验证码的委托GizDataAccessLogin* gdaVerifyCode = [[ initWithDelegate:YOUR_VERIFYCODE_DELEGATE];实现手机验证码的委托方法代码示例:
1
2
3
4
5
6
- (void)gizDataAccess:(GizDataAccessLogin *)login didRequestSendVerifyCode:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 获取到了手机验证码
// ……
}
}
在用户注册、信息修改、匿名用户转换等过程中,手机验证码可以通过此方法获取。验证码通过手机验证码的委托返回。代码示例:
1
;
6. 用户账号类型
codemessage
0normal user
1phone user
2email user
7. 第三方账号类型
codemessage
0sina account
1baidu account
2qq account
8. 错误码
codemessage
0success
8001connection_failed
8002connection_timeout
8003invalid parameters
9002product_key invalid
9003appid invalid
9004token invalid
9005user not exists
9006token expired
9008server error
9009code expired
9010code invalid
9015form invalid
9018phone unavailable
9019username unavailable
9020username or password error
9999reserved
页:
[1]