吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 869|回复: 6
收起左侧

[求助] 有没有Python大佬,API返回数据问题

[复制链接]
Suxiaoxi 发表于 2024-5-26 04:49
我的主程序 ro.py 会将收到的消息进行拆解,将”/ 战绩 “后的值作为 “Player_id” 传递给 zj.py,也会将 zj.py 收到的返回进行判断来发送对应的消息
我的需求是,当 zj.py 返回的值为 1 时发送 “API 接口已上限,请稍等 1-2 分钟后查询”,当返回值为 2 时发送 “未找到该玩家信息,请核对玩家 ID 后重试”
但现在遇到个问题,为什么我即使是输入错误的 ID,但是返回的值还是 1?一直显示“API 接口已上限,请稍等 1-2 分钟后查询”
ro.py
[Python] 纯文本查看 复制代码
class MyClient(botpy.Client):
    async def on_group_at_message_create(self, message: GroupMessage):
        content = message.content.strip()
        if content.startswith("/战绩 "):
            player_id = content.split(" ")[1]
            print("Detected /战绩 message with player_id:", player_id)
            # await message._api.post_group_message(
            #     group_openid=message.group_openid,
            #     msg_type=0,
            #     msg_id=message.id,
            #     content="正在帮你查询中,请稍等~")
            result = subprocess.run([sys.executable, "zj.py", player_id], capture_output=True, text=True, encoding='utf-8')
            if result.returncode == 2:
                messageResult = await message._api.post_group_message(
                    group_openid=message.group_openid,
                    msg_type=0,
                    msg_id=message.id,
                    content="API接口已上限,请稍等1-2分钟后查询")
                _log.info(messageResult)
            elif result.returncode == 1:
                messageResult = await message._api.post_group_message(
                    group_openid=message.group_openid,
                    msg_type=0,
                    msg_id=message.id,
                    content="未找到该玩家信息,请核对玩家ID后重试")
                _log.info(messageResult)
            else:
                file_url = f"http://bot.6638.cf:443/{player_id}_stats.png"
                uploadMedia = await self.api.post_group_file(
                    group_openid=message.group_openid,
                    file_type=1,
                    url=file_url
                )
                await self.api.post_group_message(
                    group_openid=message.group_openid,
                    msg_type=7,  # 7表示富媒体类型
                    msg_id=message.id,
                    media=uploadMedia,
                    content=' ',
                )
                time.sleep(10)
                file_path = os.path.join(os.getcwd(), f"{player_id}_stats.png")
                if os.path.exists(file_path):
                    os.remove(file_path)


zj.py
[Asm] 纯文本查看 复制代码
def get_player_data(player_id):
    url = f"https://api.pubg.com/shards/steam/players?filter[playerNames]={player_id}"
    response = requests.get(url, headers=headers)
    if not response.text.strip():
        return 1
    elif "No Players Found Matching Criteria" in response.text:
        return 2
    data = response.json()
    ban_type = data['data'][0]['attributes']['banType'] if 'data' in data and data['data'] else None
    return data, ban_type

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fire9 发表于 2024-5-26 07:20
可能是请求频繁了      
tuoluo348 发表于 2024-5-26 07:21
你可以尝试打印出响应的文本,看看在输入错误的 ID 时,API 返回了什么。
现在目测是输入错误id时api返回的内容有问题
根据返回的内容再写result.returncode部分的判断
hjboy11 发表于 2024-5-26 08:27
response = requests.get(url, headers=headers)
    if not response.text.strip():
这段可能要改,错误id时也满足第二句的条件,要把response.text输出来看看,正确和错误值应该是不一样的
你好,再见 发表于 2024-5-26 14:08
接口上限应当判断HTTP状态码为429才对
头像被屏蔽
捷豹网络丶贱仔 发表于 2024-6-5 04:08
提示: 作者被禁止或删除 内容自动屏蔽
BTFKM 发表于 2024-6-5 14:16
你自己写反了吧?

[Python] 纯文本查看 复制代码
            if result.returncode == 2:
                messageResult = await message._api.post_group_message(
                    group_openid=message.group_openid,
                    msg_type=0,
                    msg_id=message.id,
                    content="API接口已上限,请稍等1-2分钟后查询")
                _log.info(messageResult)
            elif result.returncode == 1:
                messageResult = await message._api.post_group_message(
                    group_openid=message.group_openid,
                    msg_type=0,
                    msg_id=message.id,
                    content="未找到该玩家信息,请核对玩家ID后重试")
                _log.info(messageResult)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表