python:微信对话开放平台自定义API接口(基于腾讯云函数)

官网:微信对话开放平台

搭建机器人基本大家都会自己弄自己的API接口,所以一定需要公网IP才能访问,想当然就用腾讯云函数咯,脚本自己写。

这里如要给大家讲些避雷的注意事项:

1.基于微信对话开放平台的机器人调用这个接口,不同于直接请求,你的Body请求体被包装起来了,所以要设立两套处理,既方便机器人调用,也方便自己用其他方式调用

2.API返回信息必须包装在data_list,并且对应的其他json数据要以列表[]封装,必须要转变格式,要不然容易出现很多///符号,虽然本地能用,但机器人识别不了 

没处理好就是上面这个样子,一直机器人API返回报错

下面代码你们学习重要部分就好了,一个手机号和验证码的识别API接口样例

def apiReply(reply, code=200,encoding='utf-8'):
    print(type(reply))
    reply = json.dumps({'data_list':[eval(json.dumps(reply,ensure_ascii=False,separators=(',',':')))]},ensure_ascii=False,separators=(',',':'))
    print(type(reply))
    return {
        "isBase64Encoded": False,
        "statusCode": code,
        "headers": {'Content-Type': 'application/json',                     
        "Access-Control-Allow-Origin": "*"},
        "body": json.dumps(json.loads(reply))
        }

def main_handler(event, context):
    print("="*30)
    print(event)
    print("="*30)
    try:
        body = event.get("body")
        print(body)
        dic = json.loads(body)
        if dic.get("phone_number"):
            print("微信对话开放平台触发")
            phone_number = dic.get("phone_number")
            print(phone_number)
            verificationcode = dic.get("verificationcode")
            print(verificationcode)
        else:
            print("非微信对话开放平台触发")
            from urllib.parse import parse_qs
            Data = event.get("body", None)
            print(Data)
            params = parse_qs(Data)
            result = {key: params[key][0] for key in params}
            phone_number = result['phone_number']
            verificationcode = result['verificationcode']

        #后面不重要
        sms = YZ(phone_number,verificationcode)
        if sms == "手机号验证码验证成功":
            jieguo = DL(phone_number,verificationcode)
            return apiReply({
            'token': jieguo,
            'code': '成功'
            })
        else:
            print("验证码验证失败,程序退出!")
            return apiReply({
            'token': sms,
            'code': '验证码验证失败'
            })
    except Exception as e:
        return apiReply({
            'token': str(e),
            'code': "程序错误"
            })

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能说明 1、可以对微信好友分类分组,比如分成客户组,员工组,可针对好友分组群发微信。 2、可以设置聊天机器人,让你的个人微信拥有自动根据预设关键字回复客户,跟据这功能可制成菜单型式的回复,使你的个人微信也具有微信公众号的功能,还不受众号那样的发信息限制。 3、集成了微信接口,具有获取好友列表及接收和发送微信功能,让你非常方便的集成到企业的OA办公系统、订单状态监控、服务器运行状态监控等。 使用说明: 1、请用手机微信扫描右边二维码登录系统(如不显示二维码,请“刷新页面”)。 2、本系统所有操作都是通过模拟控制网页实现,请不要直接操作右边的“微信网页版”,以免影响本软件的正常操作。 3、建议一个注册账号只对应一个微信账号,否则历史信息会混乱。 4、本软件免费用户信息带尾巴,批量发送每次限制10条,超过部分被忽略(用户可分多批发),使用时间不限制。 5、本软件付费会员不受以上第4条限制,会员时间到期后自动转成免费用户。 ***微信接口命令说明*** ****************************************** islogin 确定服务或微信是否登录 返内容如下几种: 1)"已登录" 表示都已经登录 2)"客服和微信都未登录" 3)"客服未登录' 4)"微信未登录" Url示例:http://127.0.0.1:8081/islogin ****************************************** logincode 取得登录二维码图片,以便远程手机扫描登录 如果返回非图片,表示出错或返回"微信已登录"这几字 网页中显示图示例: ****************************************** list 获取客户列表 以Xml文本格式返回列表 开发者可以直接转为DataTable,C#代码示例如下: WebClient webc = new WebClient(); string xmltxt=webc.DownloadString("http://127.0.0.1:8081/list"); DataTable dt=XmlTxtToDataTable(xmltxt); private DataTable XmlTxtToDataTable(string XmlTxt) {//Xml文本转DataTable XmlDocument doc = new XmlDocument(); doc.LoadXml(XmlTxt); XmlNodeReader xnr = new XmlNodeReader(doc); DataSet ds = new DataSet(); ds.ReadXml(xnr); DataTable dt = ds.Tables[0]; return dt; } ****************************************** getimg 取得客户图标 参数 uname=客户名(必选) (用list获取到的客户名) 如果返回非图片,表示出错或返回"客户名为空或找不到。"等字符 网页中显示图示例: ****************************************** send 发送信息 参数 uname=目标客户名(必选) (用list获取到的客户名) msg=信息内容(必选) time=定时发送时间(可选),格式:"yyyy-MM-dd HH:mm:ss" msid=调用者定的信息ID(可选,是大于0数字才有效),用于在sendend判断发送结果 返回以下情况 1)"ok"表示成功加入到发送队列(不是已发成功),是否成功要用sendend命令根据"信息ID"查 2)返回其它信息表示出错信息 GET提交示例:http://127.0.0.1:8081/send?uname=客户名&msg=信息内容&time=2016-03-15 15:20:00&msid=3 ****************************************** sendend 判断发送结果 参数 msid=调用者在发送时定的信息ID 返回以下情况 "ok"=发送成功 "err"=发送出错

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值