zy阿二 2023-02-23 13:14 采纳率: 25%
浏览 25
已结题

用python实现steam聊天消息的接收和发送

img

如图,写到这里开始不知道如何继续往下写了。。求教

Fiddler 抓包:

img

现有代码:

import socket
import requests
from jsonpath import jsonpath

def ChatSteam(session: requests.session() = None):  
    # 调用Steam API 以获取Steam的 WebSocket地址
    response = requests.get(
        "https://api.steampowered.com/ISteamDirectory/GetCMList/v1/?cellid=0").json()
    serverlist_websockets = jsonpath(response, "$..serverlist_websockets[*]")

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 生成套接字对象
    for web_socket_url in serverlist_websockets:
        HOST, PORT = web_socket_url.split(":")
        # 遍历检查WebSocket地址是否可用
        try:
            s.connect((HOST, int(PORT)))  # 创建套接字链接
            # 得到可以成功链接的websocket地址
            print(f"ChatSteam Websocket 连接:{web_socket_url} 成功!")
            break

        except Exception as e:
            print(
                f"ChatSteam Websocket 连接:{web_socket_url} 错误!Error: {str(e)}")

    response = session.get(
        'https://steamcommunity.com/chat/clientjstoken').json()
    print("➡1 response json :", response)
    token = response['token']
    m_steamID = response['steamid']

求如何继续往下写,最终实现用python实现steam聊天消息的接收和发送。

  • 写回答

2条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-23 14:24
    关注

    基于Monster 组和GPT的调写:
    可以使用已经连接的套接字对象s,以及获得的token和m_steamID来实现Steam聊天消息的接收和发送。
    步骤:

    • 发送一个登录请求到Steam聊天服务器,告诉服务器您的Steam ID和Token。

    • 等待从服务器返回的消息。可以使用socket.recv()函数接收消息,它将阻塞程序,直到收到数据为止。

    • 处理从服务器返回的消息。Steam聊天消息使用JSON格式,因此需要解析JSON字符串以获取消息内容。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月3日
  • 已采纳回答 2月23日
  • 修改了问题 2月23日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么