admin管理员组

文章数量:1794759

基于一个很久之前的python库tencent的API开发有趣应用

这篇博客给大家介绍一个python库 tencent (/) 以及对应三方API的开发流程,以公众号后台通过腾讯服务器接入自动系统回复为例。基于微信公众号后台开发自动回复,或者利用多模态信息回复用户输入,需要自己有独立服务器和相关的后端框架才能验证成功。这样用户给公众号/订阅号发信息的时候,公众号后台会给你填写的服务器地址发送POST请求,经过验证之后你的服务端就可以给公众号提供自动回复的服务了。

1. python库tencent安装

安装 tencent 库

代码语言:txt复制
pip install tencent

验证是否安装成功

代码语言:txt复制
import tencent

如何可以看到一个"tencent"的logo或者是小马哥和企鹅的灰度图就代表成功了。

python package tencent import 成功
python package tencent import 成功

2. 三方API 开发Guidelines

可以在 github repo() 创建MR,Repo管理员会检查API的目标和安全性决定是否在合并。具体的开发 guidelines参考 ()

2.1 新开发的API 继承基类 BaseAPI

假设我们要实现一个名字为 "api_demo"的API,输入参数和输出参数支持可变长。

入参:

*args: 位置参数的元组

**kwargs: key-value类型入参

出参:

result: dict

代码语言:txt复制
class BaseAPI(object):
    """docstring for ClassName"""
    def __init__(self, configs):
        self.configs = configs
        self.name = API_NAME_BASE


    def api(self, args, kwargs):
        """
        """


class DemoAPI(BaseAPI):

    """docstring for ClassName"""
    def __init__(self, configs):
        super(DemoAPI, self).__init__(configs)
        self.name = API_NAME_DEMO

    def api(self, args, kwargs):
        """
            Args:
                args: tuple of args,  (input)
                kwargs: key value dict
            Return:
                res_dict: dict, multi-modal text text, image, audio and video
        """
        api_input = ""
        if len(args) > 0:
            api_input = args[0]

        res_dict = {}
        res_dict["output"] = api_input
        return res_dict

2.2 在__init__.py文件中注册你的API

在文件 "/tencent/__init__.py" 中你可以 import 你的API,然后添加一行代码来注册你的API,之后就可以调用了。

注意:API类的name属性 (DemoAPI.name) 是区分你的API的唯一标识符号,admin 会检查命名冲突,不能影响。

代码语言:txt复制
from .base import *

SUPPORTED_APIS[DemoAPI(None).name] = {KEY_IMPL: DemoAPI}

2.3 通过统一接口调用你的API

代码语言:txt复制
import tencent

your_api_name="xxx"
res = tencent.api(your_api_name)

2.4 单元测试

在顶层tencent目录的 tests目录下 (/tencent/tests/*.py),需要写你的单元测试,缺少单元测试的MR不会被考虑合并到 master分支。参考下面的 github的tests地址 github repo ()

代码库和地址

本文标签: 基于一个很久之前的python库tencent的API开发有趣应用