Project description

# Python SDK 接入指南 & CHANGELOG

## 接入指南

1. 安装eleme sdk依赖包,引入依赖

2. 利用sdk.config 模块初始化设置沙箱环境,key,secret,调用config.set_log 设置自己的log处理方式。如果是企业应用还需设置callback_url

3. 利用sdk.oauth 模块完成oauth授权测试

4. 利用sdk.api 模块完成接口调用测试

5. 启动sdk自带的server 帮助完成接收饿了么推送消息业务,以及授权测试

6. 上线前将config.py中初始值sandbox,key和secret以及callback_url填为正式环境

## 代码示例(以调用ShopService为例)

### 企业应用

- 第一步 安装sdk 包,引入模块

sudo pip install eleme.openapi.python.sdk

```python

from sdk.oauth.oauth_client import OAuthClient

from sdk.apis.shop_service import ShopService

from sdk.config import Config

```

- 第二步 实例化一个config,设置自己的日志处理方式 实例化一个oauth2.0客户端授权模式的授权对象

```python

config = Config(True, key, secret, call_back_url)

# 自己的日志处理方式,必须有info 和error 方法

class MyLog:

def info(self, log):

print (u"my info log:{}".format(log))

def error(self, log):

print (u"my error log:{}".format(log))

config.set_log(MyLog())

oauth_client = OAuthClient(config)

```

- 第三步 获取生成授权url

```python

auth_url = oauth_client.get_auth_url(state, scope)

```

- 第四步 在授权url中同意授权后,会跳转到CALLBACK_URL的页面,在通过链接上的参数,获取授权码code

- 第五️步 通过code获取token对象,此步获取到的token对象可在有效期内一直使用,不用每次调用前都去获取一次,建议应用授权一次后存放到全局缓存中

```python

token = oauth_client.get_token_by_code(code)

```

- 第六步 实例化远程调用的client对象

```python

rpc_client = RpcClient(config, token)

```

- 第七步 实例化一个服务对象

```python

shop_service = ShopService(rpc_client)

```

- 第八步 调用服务方法,获取资源数据

```python

shop = shop_service.get_shop(123456)

```

- 第九步 如果token过期,通过refresh_token换取新的token

```python

refresh_token = token["refresh_token"]

token = oauth_client.get_token_by_refresh_token(refresh_token, scope)

```

### 个人应用

- 第一步 安装sdk 包,引入模块

sudo pip install eleme.openapi.python.sdk

```python

from sdk.oauth.oauth_client import OAuthClient

from sdk.apis.shop_service import ShopService

from sdk.protocol.rpc_client import RpcClient

from sdk.config import Config

```

- 第二步 实例化config对象,实例化一个oauth2.0客户端授权模式的授权对象

```python

config = Config(True, key, secret)

# 自己的日志处理方式,必须有info 和error 方法

class MyLog:

def info(self, log):

print (u"my info log:{}".format(log))

def error(self, log):

print (u"my error log:{}".format(log))

config.set_log(MyLog())

oauth_client = OAuthClient(config)

```

- 第三️步 获取token对象,此步获取到的token对象可在有效期内一直使用,不用每次调用前都去获取一次,建议应用授权一次后存放到全局缓存中

```python

token = oauth_client.get_token_in_client_credentials()

```

- 第四步 实例化远程调用的client对象

```python

rpc_client = RpcClient(config, token)

```

- 第五步 实例化一个服务对象

```python

shop_service = ShopService(rpc_client)

```

- 第六步 调用服务方法,获取资源数据

```python

shop = shop_service.get_shop(123456)

```

### Server 使用方式

- 第一步 安装sdk 包,引入模块

sudo pip install eleme.openapi.python.sdk

- 第二步 引入依赖

```python

from sdk.config import Config

from server.global_config import Global

from server.start_up import boot_start

```

- 第三步 初始化config对象,并将config对象设置到Global中

```python

config = Config(True, key, secret, call_back_url)

# 自己的日志处理方式,必须有info 和error 方法

class MyLog:

def info(self, log):

print (u"my info log:{}".format(log))

def error(self, log):

print (u"my error log:{}".format(log))

config.set_log(MyLog())

Global(config)

```

- 第四步 启动服务

启动服务后 会监听三个localtion

1. get /listenMessage 响应饿了么平台的url校检

2. post /listenMessage 接收饿了么平台的消息推送

3. get /callback 授权回调地址,处理授权逻辑

4. post /getInfo 获取当前的用户信息和店铺信息

```python

boot_start(port)

```

## CHANGELOG:

### [v1.5.0]

Release Date : 2017-05-27

- [Feature] 在订单服务中增加了若干订单操作的轻量接口

- [Feature] 在店铺服务中增加了 eleme.shop.setOnlineRefund 设置是否支持在线退单

### [v1.4.0]

Release Date : 2017-05-23

- [feature] 在商户服务中增加了 eleme.user.getPhoneNumber 获取当前授权帐号的手机号

- [feature] 在订单服务中增加了 eleme.order.getUnreplyReminders 获取店铺未回复的催单;eleme.order.getUnprocessOrders 查询店铺未处理订单;eleme.order.getCancelOrders 查询店铺未处理的取消单;eleme.order.getRefundOrders 查询店铺未处理的退单;eleme.order.getAllOrders 查询全部订单这五个新接口

- [feature] 在商品服务中增加了 eleme.product.item.getItemByShopIdAndExtendCode 根据商品扩展码获取商品;eleme.product.item.getItemsByShopIdAndBarCode 根据条形码获取商品

### [v1.3.0]

Release Date : 2017-05-12

- [feature] 在商品服务中增加了 eleme.product.item.batchUpdatePrices 批量修改商品价格的接口

- [feature] 在订单服务中增加了 eleme.order.cancelDelivery 取消呼叫配送和 eleme.order.callDelivery 呼叫配送这两个接口

- [feature] 在订单服务中修改了 OOrder 类的定义,增加了一个 List 的属性。

- [feature] 在商品服务中增加了 eleme.product.category.getShopCategoriesWithChildren 查询店铺商品分类,包含二级分类;eleme.product.category.getCategoryWithChildren 查询商品分类详情,包含二级分类;eleme.product.category.createCategoryWithChildren 添加商品分类,支持二级分类;eleme.product.category.updateCategoryWithChildren 更新商品分类,包含二级分类;eleme.product.category.setCategoryPositionsWithChildren 设置二级分类排序这五个接口。

### [v1.2.0]

Release Date : 2017-05-05

- [feature] 增加签约服务;

- [feature] 订单服务中新增了 eleme.order.replyReminder eleme.order.getCommodities eleme.order.mgetCommodities eleme.order.getRefundOrder eleme.order.mgetRefundOrders

- [feature] 增加接口查询商品后台分类 eleme.product.category.getBackCategory

### [v1.1.1]

Release Date : 2017-04-28

- [bugfix] 为和老版本使用习惯保持一致,RpcClient(config,token) 中的token含义由access_token改为含有access_token 属性的json串

### [v1.1.0]

Release Date : 2017-04-25

- [feature] 1.增加ugc服务;2.订单服务增加确认送达接口;3.shop服务增加设置送达时间接口;4.product服务增加 批量沽清置满接口

### [v1.0.1]

Release Date : 2017-04-11

- [feature] 1.文档优化;2.修改回调页面图标

### [v1.0.0]

Release Date : 2017-04-07

- [feature] eleme sdk

Project details

Statistics

View statistics for this project via Libraries.io, or by using our public dataset on Google BigQuery

Meta

License: MIT License

Author: David

Tags

eleme,

openapi

Maintainers

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for eleme.openapi.python.sdk, version 1.5.0

Filename, size

File type

Python version

Upload date

Hashes

File type

Egg

Python version

2.7

Upload date

May 27, 2017

Hashes

View

File type

Source

Python version

None

Upload date

May 27, 2017

Hashes

View

Close

Hashes for eleme.openapi.python.sdk-1.5.0-py2.7.egg

Hashes for eleme.openapi.python.sdk-1.5.0-py2.7.egg

Algorithm

Hash digest

SHA256

9dfb0ddec9a63904835607db2a141202eb3367fb44811c833ef64d3dcae84224

Copy

MD5

2b71f098f94c588f014f5aab3e0b9d0e

Copy

BLAKE2-256

3c60262c679e4b1dc7858b2ee1b0a4e3c6347c0442ff1997debffb37b79f6384

Copy

Close

Hashes for eleme.openapi.python.sdk-1.5.0.tar.gz

Hashes for eleme.openapi.python.sdk-1.5.0.tar.gz

Algorithm

Hash digest

SHA256

44d0b1f0692d474caa60d1445f3bda8b136755ffa8a0578fda08ac1d04e526b2

Copy

MD5

ccea77af9a855487909ecf8b9fc1e09e

Copy

BLAKE2-256

e0b0f98100a01fc16d9a812888b9afcc6a912c410db1bc941fedfd782295ff96

Copy

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐