# sdk-csharp **Repository Path**: pyfxl/sdk-csharp ## Basic Information - **Project Name**: sdk-csharp - **Description**: Gokuai Enterprise C# SDK - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-03-13 - **Last Updated**: 2024-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #够快.NET SDK使用说明 版本:1.0.0.4 创建:2013-09-09 ## 引用 1.将**GokuaiNetSDK.dll**库文件引用为进项目 2.在**GokuaiNetSDK.XML**对SDK里调用的类做了简单的注释,确保与dll文件放在同一目下,调用SDK时方便查看 ## 命名空间及类说明 1. **GoKuai_EntSDK**命名空间: (1) **GokuaiEngine**是调用接口主要使用的类; (2) **SearchResult**是**GokuaiEngine**的派生类,主要用于做搜索结果的保存、删除和重现。 2. **GoKuai_EntSDK.Data**命名空间: (1) **Condition**是构建搜索条件所要使用的类,设置参数以后,然后使用对象里的**ToJsonString**方法,可以将对象转化为json字符串,方便调用**Search**方法传参(详细见下文方法调用或者**GokuaiEngineDemo**解决方案); (2) **Collaboration**是添加共享、删除共享、编辑共享,所使用到的类,方便转化成调用接口使用的参数形式。 3. **GoKuai_EntSDK.UtilClass**命名空间:在这里面封装了一些辅助转化数据的类 (1) **SimpleJson**简单转译json的类; (2) **Util**里面封装了一些流处理、文件名、时间处理、转化文件大小等的方法; (3) **UnixTimestampConverter**里面封装了转时间戳的方法。 ## 类的实例化及方法调用 ###**GokuaiEngine** ####构造方法 ```c new GokuaiEngine(Username,Password,ClientId,ClientSecret) ``` ##### 参数
必需 类型 说明
Username String 用户名
Password String 密码
ClientId String 申请应用时分配的AppKey
ClientSecret String 申请应用时分配的AppSecret
####GetToken()方法 GokuaiEngine实例化以后,需要执行着一个方法来进行身份验证获取token,验证通过,则才可以使用该类里面的其他方法。 ```c //新实例化对象 GokuaiEngine ge = new GokuaiEngine(_username,_password,_clientId,_clientSecret); String result=ge.GetToken(); if (ge.StatusCode==HttpStatusCode.OK) { //获得token,也可以在result中自己解析 TB_Token.Text = ge.Token; } ``` ##### 返回格式 JSON ##### 返回结果 正常返回 HTTP 200
字段 类型 说明
access_token String 用于调用access_token,接口获取授权后的access token。
expires_in Int32 Access Token的有效期,以秒为单位
refresh_token String 用于刷新access_token 的 refresh_token,有效期1个月
错误返回 error参数
字段 说明
默认 请求错误,请重试
invalid_request 请求参数错误
invalid_client 当前客户端版本已不能使用
invalid_grant 邮箱或密码错误
unauthorized_client 该设备已限制使用
access_denied 您的客户端已被限制登录
#### RefreshToken()方法 token有过期时限,如果token失效,可以通过这个方法重新获取token。 ```c GokuaiEngine ge = new GokuaiEngine(_username,_password,_clientId,_clientSecret); ge.GetToken();//需要第一次验证以后,refreshtoken方法才会有用 ge.RefreshToken(); ``` ##### 返回格式 JSON ##### 返回结果 正常返回 HTTP 200
字段 类型 说明
access_token String 用于调用access_token,接口获取授权后的access token。
expires_in Int32 Access Token的有效期,以秒为单位
refresh_token String 用于刷新access_token 的 refresh_token,有效期1个月
####Get(Fullpath,Mount)方法 用于获取单文件信息。 ##### 参数
必需 类型 说明
Fullpath String 要获取信息文件的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”。
Mount Enmu 存储空间的类型
#####返回格式 JSON #####返回结果 正常返回 HTTP 200
字段 类型 说明
hash String 路径hash
dir Int 是否文件夹
fullpath String 文件路径
filename String 文件名称
last_member_name String 文件最后修改人
last_dateline Int 文件最后修改时间戳(10位精确到秒)
####GetUserInfo()方法 获取帐号信息 #### 请求参数
必需 类型 说明
token string 授权成功后获取的access_token
sign string 参考使用说明的签名算法
#### 返回格式 JSON #### 返回结果
字段 类型 说明
org_id int 团队ID
org_name string 团队名称
id int 用户编号
username string 用户名
photourl string 头像地址
capacity bigint 当前用户可用空间大小
size bigint 个人已使用空间容量
org_capacity bigint 团队可用空间大小
org_size bigint 团队已使用空间大小
####Get(DownloadUrl , FileName)方法 根据下载地址,下载到TeamFolderPath指定的位置,TeamFolderPath默认为D:\GokuaiApiExt\Team\,可以通过GokuaiEngine实例化对象TeamFolderPath来设置。 #####参数
必需 类型 说明
Fullpath String 要获取信息文件的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型
#####返回格式 bool #####返回结果 true,下载过程中无发生异常,否则为false ####Get(Stream , FileName)方法 将流存放到TeamFolderPath指定的位置,TeamFolderPath注释见Get(DownloadUrl , FileName)方法。 #####参数
必需 类型 说明
Stream Stream 文件流数据
FileName Enmu 文件名
#####返回格式 bool #####返回结果 true,存放过程中无发生异常,否则为false ####List(FullPath,Start,Mount)方法 获取文件夹里的文件列表。 ##### 参数
必需 类型 说明
Fullpath String 要获取信息文件的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Start String 列表开始位置,如果Start=50,是从列表里第51个文件开始获取
Mount Enmu 存储空间的类型
#####返回格式 JSON #####返回结果 正常返回 HTTP 200
必需 类型 说明
token string 授权成功后获取的access_token
sign string 参考使用说明中的签名算法
start int 开始位置(每次返回100条数据)
fullpath string 文件的路径
mount string 操作的存储空间,gokuai:个人的存储空间(默认),team:团队的存储空间
####Add(FullPath,Mount,LocalPath)方法 上传文件或添加文件夹. ##### 参数
必需 类型 说明
Fullpath String 上传文件和添加文件夹的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型
LocalPath String 上传文件夹,则传空
#####返回格式 JSON #####返回结果 正常返回 HTTP 200
字段 类型 说明
hash string 路径hash
fullpath string 文件的路径
filehash string 文件的sha1值(仅新增文件返回)
filesize bigint 文件的大小(仅新增文件返回)
####Del(FullPath,Mount)方法 上传文件或添加文件夹. ##### 参数
必需 类型 说明
Fullpath String 删除文件或文件夹的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型
#####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####Move(FullPath,FromFullPath,Mount,ToMount)方法 移动文件或文件夹。FullPath, FromFullPath,规则,例如将text.txt从1文件夹到2文件夹,FullPath=2/text.txt, FromFullPath=1/text.txt;. ##### 参数
必需 类型 说明
FromFullPath String 目标文件全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”。
Fullpath String 源文件全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型
ToMount Enmu 存储空间的类型
#####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####Copy(FullPath,FromFullPath,Mount,ToMount)方法 复制文件或文件夹。FullPath, FromFullPath,规则,例如将text.txt从1文件夹到2文件夹,FullPath=2/text.txt, FromFullPath=1/text.txt; ##### 参数
必需 类型 说明
Fullpath String 目标文件全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
FromFullPath String 源文件全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型
ToMount Enmu 存储空间的类型
#####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####GetShare(FullPath,Mount)方法 获取文件或文件夹的共享参与人。 ##### 参数
必需 类型 说明
Fullpath String 获取共享参与人文件的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型
ReturnType Enmu 返回参数的类型
#####返回格式 JSON #####返回结果 正常返回 HTTP 200
字段 类型 说明
members array 参与共享的独立成员列表,结构请参考后面的说明
groups array 参与共享的分组列表,结构请参考后面的说明(只返回成员时,返回空数组)
>members的结构 [ { 'member_id':共享参与人的用户id, 'member_name':共享参与人的用户名, 'role':'共享的权限角色' }, ... ] >groups的结构 [ { 'group_id':共享参与分组的id 'group_name':共享参与人分组的名称, 'role':'共享的权限角色', 'members':该共享分组的成员列表 [ { 'member_id':共享参与人的用户id, 'member_name':共享参与人的用户名, 'role':'共享的权限角色' }, ... ] }, ... ] ####AddShare(FullPath,Mount)方法 添加文件或文件夹的共享参与人。 ##### 参数
必需 类型 说明
Fullpath String 添加共享参与人文件的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型
Collaboration Array 共享参与人参数,可以通过Collaboration类辅助创建
#####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####DelShare(FullPath,Mount)方法 删除文件或文件夹的共享参与人。 ##### 参数
必需 类型 说明
Fullpath String 删除共享参与人文件的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型
#####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####EditShare(FullPath,Mount)方法 编辑文件或文件夹的共享参与人的权限。 ##### 参数
必需 类型 说明
Fullpath String 编辑共享参与人文件的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型
Collaboration Array 共享参与人参数,可以通过Collaboration类辅助创建
#####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####GetMember()方法 获取团队成员和分组。 #####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####GetGroupMember(GroupId)方法 获取分组里的成员。 ##### 参数
必需 类型 说明
GroupId Int 获取分组成员的id号
#####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####Search(Condition,Mount)方法 根据条件搜索。 ##### 参数
必需 类型 说明
Condition String 搜索条件,为jsonstring格式,可以实例化类Condition,然后设置里面属性参数,最后ToJsonString来传参
Mount Enmu 存储空间的类型
#####返回格式 JSON #####返回结果 正常返回 HTTP 200,返回数据格式与获取文件夹列表的接口List返回的数据格式一样 ####UpdateList(FullPath,Mount ,UpdateType,StartTime,EndTime)方法 获取更新用户更新列表。 ##### 参数
必需 类型 说明
FullPath String 获取更新列表文件的全路径,如果为文件夹,后面需要加上“/”,例如“FolderName/”
Mount Enmu 存储空间的类型,为空传enum Empty
UpdateType Enmu 更新操作类型:1文件操作2讨论3时间,为空传enum All
StartTime Int32 开始时间戳
EndTime Int32 结束时间戳
#####返回格式 JSON #####返回结果 正常返回 HTTP 200
字段 类型 说明
act int 更新的具体类型,请参考后面详细说明
member_id int 更新发起人的用户ID
member_name string 更新发起人的用户名
dateline int 更新发生的时间,时间戳形式,秒为单位
files array 该次更新的文件或文件夹信息,结构请参考后面的说明
act的值
字段 类型
0 删除
1 新增
2 重命名
3 修改
4 移动
5 恢复删除
6 修改还原
16 讨论
100 团队成员离开
101 团队成员加入
110 不再是联系人
111 成为联系人
997 关闭共享
998 退出共享
999 取消共享
1000 共享文件/文件夹
1010 链接被下载
1011 链接被保存到够快
1012 链接被保存到够快
1013 链接文件夹内有新文件上传
files的结构 [ { "hash":文件路径hash (string), "dir":是否为目录 (int), "up_fullpath":文件的上级路径 (string), "fullpath":文件路径 (string), "filename":文件名 (string), "filesize":文件大小,以b为单位(int), "org_share":是否为团队共享文件夹 1为是 0为否 }, … ] ####GetMemberInfo(AuthorizationId)方法 根据帐号获取MemberId ##### 参数
必需 类型 说明
AuthorizationId String 用户授权唯一ID
#####返回格式 JSON #####返回结果
字段 类型 说明
member_id int 用户唯一ID
####GetAccountInfo(MemberId)方法 根据帐号获取AccountInfo ##### 参数
必需 类型 说明
MemberId int 用户唯一ID
#####返回格式 JSON #####返回结果
字段 类型 说明
authorization_id int 用户授权唯一ID
###SearchResult 搜索结果操作 ####Save(Condition, Name,Desciption,Mount) 保存搜索。 ##### 参数
必需 类型 说明
Condition String 搜索条件,为jsonstring格式,可以实例化类Condition,然后设置里面属性参数,最后ToJsonString来传参
Name String 搜索名称
Desciption String 描述
Mount Enmu 存储空间的类型
#####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####Restore(Code) 根据保存搜索获得的code,重现搜索结果。 ##### 参数
必需 类型 说明
Code String 搜索结果集的唯一编码,该唯一码保存搜索结果后会返回
#####返回格式 JSON #####返回结果 正常返回 HTTP 200 ####Earse(Code) 根据保存搜索获得的code,删除搜索结果。 ##### 参数
必需 类型 说明
Code String 搜索结果集的唯一编码,该唯一码保存搜索结果后会返回
#####返回格式 JSON #####返回结果 正常返回 HTTP 200