DELPHI编写多语言通用SDK(delphi源码已发) 04-05更新
Delphi 7.0写的 2012-04-05 codes地址 http://code.google.com/p/kuaipancore/ 调用方法见帖子下面的传送门源码,含JSON解析。 时间仓促,不过写的通俗易懂 很具有参考价值,有全部API实现方法,有问题请与我联系 2012-03-28 新增: function Copyfile(consumer_key,consumer_secret,oauth_token,oauth_token_secret,from_Path,to_path,Root:pchar):pchar;external 'KuaiPanCore.dll' name 'Copyfile'; function Movefile(consumer_key,consumer_secret,oauth_token,oauth_token_secret,from_Path,to_path,Root:pchar):pchar;external 'KuaiPanCore.dll' name 'Movefile'; 文件复制跟文件移动/改名 源码我整理下再发,我写的时候见个API写下写的很乱滴 DEMO也更新了 2012-03-22 修复: 分享链接的BUG 修复中文名的信息获取,分享链接获取 新增: function HMac_sha1(Codestr,secret:pchar)Char; function GettimestampChar 2012-03-21 注意,新版本SDK中 所有string类型全部换成pchar, 为了兼容其他语言 DEMO也已经更新个人时间有限,可能有些功能没有很完善的修复好 使用本库开发的软件已经在设计中。。。。。。。。 完善了异常处理 该DEMO跟SDK是可以实际生产使用的。。。 DEMO传送门: http://bbs./viewthread.php?tid=21706&extra=page%3D1 附件下载: 支持SSL通道 动态链接库的优点就不多说啥了。全民调用。 JSON请自行解析,有空我会加上返回XML 一共提供了10个接口,顺序排列分别为 1.获取临时key ( 3个参数,consumer_key,consumer_secret,剩下一个boolean是否立刻打开授权页面, 返回JSON ) 2.获取正式key ( 4个参数,consumer_key,consumer_secret,oauth_token,oauth_token_secret , 返回JSON ) 3.获取账户信息 (4个参数,consumer_key,consumer_secret,oauth_token,oauth_token_secret 返回JSON ) 4.获取文件(夹)信息(8个参数,consumer_key,consumer_secret,oauth_token,oauth_token_secret ,需要获得的文件(夹)路径,应用权限路径 返回JSON) 5,6.创建删除文件夹(6个参数,consumer_key,consumer_secret,oauth_token,oauth_token_secret ,目录,应用权限路径 返回JSON ) 7.得到上传地址 ( 1个参数,true返回原始Json格式。false直接返回解析好的http路径) 8.上传文件(8个参数,consumer_key,consumer_secret,oauth_token,oauth_token_secret ,快盘位置文件路径,应用权限路径, 上传地址,待上传文件路径 返回JSON ) 9.下载文件(7个参数,consumer_key,consumer_secret,oauth_token,oauth_token_secret ,快盘位置文件路径,应用权限路径, 下载文件保存路径 返回JSON 10.获取分享连接(6个参数,consumer_key,consumer_secret,oauth_token,oauth_token_secret ,待分享文件路径,应用权限路径 返回JSON) function GetTempToken(consumer_key,consumer_secret:string;OpenUrl:Boolean):String; external 'KuaiPanCore.dll' name 'GetTempToken'; function GetaccessToken(consumer_key,consumer_secret,oauth_token,oauth_token_secret:string):String;external 'KuaiPanCore.dll' name 'GetaccessToken'; function Getaccountinfo(consumer_key,consumer_secret,oauth_token,oauth_token_secret:string):String;external 'KuaiPanCore.dll' name 'Getaccountinfo'; function Getmetadata(consumer_key,consumer_secret,oauth_token,oauth_token_secret,Url,Root:string):String;external 'KuaiPanCore.dll' name 'Getmetadata'; function Createfolder(consumer_key,consumer_secret,oauth_token,oauth_token_secret,Path,Root:string):String;external 'KuaiPanCore.dll' name 'Createfolder'; function Deletefolder(consumer_key,consumer_secret,oauth_token,oauth_token_secret,Path,Root:string):String;external 'KuaiPanCore.dll' name 'Deletefolder'; function Getuploadlocate(Json:Boolean):string;external 'KuaiPanCore.dll' name 'Getuploadlocate'; function Uploadfile(consumer_key,consumer_secret,oauth_token,oauth_token_secret,Path,Root,uploadlocate,filename:string):String;external 'KuaiPanCore.dll' name 'Uploadfile'; function Downloadfile(consumer_key,consumer_secret,oauth_token,oauth_token_secret,Path,Root,filename:string):String;external 'KuaiPanCore.dll' name 'Downloadfile'; function Getshare(consumer_key,consumer_secret,oauth_token,oauth_token_secret,Path,Root:string):String;external 'KuaiPanCore.dll' name 'Getshare'; Uses IdHMACSHA1,IdCoderMIME,HTTPApp; //INDY10 function EncryptHMACSha1(Input, AKey: string): TIdBytes; begin with TIdHMACSHA1.Create do try Key := ToBytes(AKey); Result := HashValue(ToBytes(Input)); finally Free; end; end; function Base64Encode(const Input: TIdBytes): string; begin Result := TIdEncoderMIME.EncodeBytes(Input); end; 可以计算签名了Base64Encode(EncryptHMACSha1(codestr,consumer_secret+'&'+Token)) ; Uses DateUtils; 时间戳:inttostr(DateTimeToUnix(Now)-8*60*60) 随机串我采用了时分秒+随机字数 Randomize; ranstr:=formatdatetime('HHmmssQ',now)+ IntToStr(Random(100000)) ; 其他也没啥难点了。。 工作人员请看看点评下。。本人小菜 |
|