# open-taobao **Repository Path**: shop-yun.go/open-taobao ## Basic Information - **Project Name**: open-taobao - **Description**: 淘宝开放平台SDK-Go语言版 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 3 - **Created**: 2014-07-25 - **Last Updated**: 2021-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README open-taobo-api ============== 淘宝开放平台SDK-Go语言版 自带web小工具: 可测试基本流程, 可根据 ApiMetadata.xml 重新生成SDK源码并编译, 保持与淘宝同步 版本说明 ======== * **主包:** 0.0.1 fork github.com/changkong/open_taobao * **子包:** 根据淘宝 20140725 的 ApiMetadata.xml 生成 * **工具程序:** 0.0.3 运行环境 ======== * **操作系统:** 由于使用Go原始功能,没有使用cgo,理论上go支持的操作系统都支持,当前只测试了linux mint * **测试环境** linux mint go1.3 安装说明 ======== **安装主包** * go get github.com/cnphpbb/open_taobao **安装子包** * go get github.com/cnphpbb/open_taobao/api/user **更多子包** * **用户API:** github.com/cnphpbb/open_taobao/api/user * **类目API:** github.com/cnphpbb/open_taobao/api/item * **商品API:** github.com/cnphpbb/open_taobao/api/product * **交易API:** github.com/cnphpbb/open_taobao/api/trade * **评价API:** github.com/cnphpbb/open_taobao/api/pinjia * **物流API:** github.com/cnphpbb/open_taobao/api/delivery * **店铺API:** github.com/cnphpbb/open_taobao/api/shop * **分销API:** github.com/cnphpbb/open_taobao/api/fenxiao * **旺旺API:** github.com/cnphpbb/open_taobao/api/wangwang * **主动通知业务API:** github.com/cnphpbb/open_taobao/api/notice * **工具类API:** github.com/cnphpbb/open_taobao/api/tools * **物流宝API:** github.com/cnphpbb/open_taobao/api/wlb * **直通车API:** github.com/cnphpbb/open_taobao/api/simba * **收藏夹API:** github.com/cnphpbb/open_taobao/api/favorite * **机票API:** github.com/cnphpbb/open_taobao/api/jipiao * **营销API:** github.com/cnphpbb/open_taobao/api/marketing * **酒店API:** github.com/cnphpbb/open_taobao/api/hotel * **店铺会员管理API:** github.com/cnphpbb/open_taobao/api/crm * **多媒体平台API:** github.com/cnphpbb/open_taobao/api/dmt * **子账号管理API:** github.com/cnphpbb/open_taobao/api/subuser * **服务平台API:** github.com/cnphpbb/open_taobao/api/fuwu * **退款API:** github.com/cnphpbb/open_taobao/api/refund * **关联推荐API:** github.com/cnphpbb/open_taobao/api/recommend * **组件API:** github.com/cnphpbb/open_taobao/api/widget * **支付宝API:** github.com/cnphpbb/open_taobao/api/alipy * **天猫精品库API:** github.com/cnphpbb/open_taobao/api/jp * **聚石塔API:** github.com/cnphpbb/open_taobao/api/rds * **旅行度假API:** github.com/cnphpbb/open_taobao/api/trvael * **彩票API:** github.com/cnphpbb/open_taobao/api/caipiao * **账务API:** github.com/cnphpbb/open_taobao/api/bill * **天猫退款退货API:** github.com/cnphpbb/open_taobao/api/eai 测试说明 ======== 运行如下命令, 执行web小工具 * cd tools * go build . * tools 启动后,默认通过80端口访问, 提供如下功能: * 参数修改保存 * 授权登陆测试 * 用户信息获取测试 * 根据淘宝最新 ApiMetadata.xml 重新生成SDK源码并编译, 保证代码最新 * ApiMetadata.xml 在 tools/conf 目录下,可从 [淘宝这里](http://api.taobao.com/myresources/standardSdk.htm) 下载最新配置 界面图片 ![auth](./tools/photos/auth.jpg) ![test](./tools/photos/test.jpg) ![make](./tools/photos/make.jpg) 代码样例 ======== * **获取授权url**(供用户访问、授权) ```go url, err := open_taobao.GetUrlForAuth(AppKey, RedirectUri, "") // 可参考 tools/CtrlAuth.go 的 do 方法 ``` * **获取用户授权后的处理**(接收淘宝回调信息) ```go var req open_taobao.TokenGetRequest req.SetAppKey(AppKey) req.SetAppSecret(AppSecret) req.SetRedirectUri(RedirectUri) req.SetCode(code) req.SetState("") resp, _, err := req.GetResponse() // 成功后 resp.AccessToken 就是访问令牌,可以用来调用功能API了 // 可参考 tools/CtrlAuth.go 的 callback 方法 ``` * **调用功能API** ```go var req user.UserBuyerGetRequest req.SetFields("user_id, nick") resp, data, err := req.GetResponse(AccessToken) // 成功后 resp 是结果对象, data 是返回的原始json串 // 可参考 tools/CtrlTest.go 的 userBuyerGet 或 userSellerGet 方法 ``` * **其他资源** * [淘宝API详细列表](http://open.taobao.com/doc/category_list.htm?id=102) 可以API更详细的解释 * 对登陆授权的更多介绍,参见 [https免签调用方式详解](http://open.taobao.com/doc/detail.htm?id=994) [OAuth2.0授权方式](http://open.taobao.com/doc/detail.htm?id=118) 技术说明 ======== * **调用方式:** 只支持 https 免签调用方式 * **业务字段:** 为了调用方便, 都生成相关字段或方法, 而不是 map 或 json 对象, 缺点是代码多, 包大 * **子包分拆:** 由于生成完整的Go包, 有20多M, 太大了,因此按淘宝官方的分类分拆成子包 * API分类淘宝没有给出配置文件, 是根据[淘宝API列表](http://open.taobao.com/doc/category_list.htm?id=102), 手工维护的配置表, 原理根据 api 前缀分类 * 配置文件是 tools/conf/package.json, 若分类有问题,可修改该配置文件, 然后重新生成SDK * **调用参数:** 所有调用参数,只支持字符串类型 * **返回结果:** 做了 string bool int float struct 的判断转型, 调用方便 * **淘宝错误:** 对淘宝返回错误做了包装, 都会通过 error 对象返回 * **对象命名:** 尽量参照淘宝官方其他SDK的命名方式, 例如: * 获取卖家信息的淘宝API是 taobao.user.seller.get * open_taobao 中对应 user 子包的 UserSellerGetRequest 对象的 GetResponse 方法 * **前端框架:** bootstrap jquery * **后端框架:**直接使用 go 自带功能 可以完善 ======== * 加密配置文件 * 演示环境支持 * 通用调用接口 * 更多授权信息分辨 * 直接下载配置文件 * 编译进度 * 分类包的自动检测 * 更多测试 (^_^) LICENSE ======= open_taobao is licensed under the MIT