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

Python解决steam手机确认的问题

关于Steam手机令牌上确认交易或确认市场出售的库的使用示例、注释。在github上有很多steam相关的开源库。但是由于本人英语水平较差,研究了好久了只解决了登录。目前发送交易和在市场上出售,需要用steam APP进行二次确认,我找不到对应的方法或者说找到了不会用。

from steampy.guard import generate_confirmation_key

def generate_confirmation_key(identity_secret: str, tag: str, timestamp: int = int(time.time())) -> bytes:
    buffer = struct.pack('>Q', timestamp) + tag.encode('ascii')
    return base64.b64encode(hmac.new(base64.b64decode(identity_secret), buffer, digestmod=sha1).digest())

可能我需要的功能就是这串代码,但是我不知道传参tag是什么。并且返回return的东西也不知道怎么用。
我的理解一、是确认一个交易需要提供3个参数:
参数1.一个key/cookies,也就是identity_secret。
参数2.待确认的交易ID,但是tag很明显不是。 (或者只需要参数1,返回所有待确认信息,然后再传需要确认的交易ID和 确认与否)
参数3. 二选一 ,确认 / 取消。

但是我的2个理解貌似都没找到对应的方法。

  • 写回答

10条回答 默认 最新

  • Yang2023. 2023-02-14 13:59
    关注

    根据Steam官方文档,我们可以发现,tag参数可以是任何字符串,只要在确认交易时,Steam APP中带有相应的信息,即可完成确认。所以我们可以根据自己的需求,将所需要传递的信息作为tag参数进行传递,然后在Steam APP中查看相应信息进行确认。
    修正代码如下:

    from steampy.guard import generate_confirmation_key
     
    def generate_confirmation_key(identity_secret: str, tag: str, transaction_id: str, timestamp: int = int(time.time())) -> bytes:
        buffer = struct.pack('>Q', timestamp) + tag.encode('ascii') + transaction_id.encode('ascii')
        return base64.b64encode(hmac.new(base64.b64decode(identity_secret), buffer, digestmod=sha1).digest())
    

    以上内容来自ChatGPT

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月16日
  • 修改了问题 2月14日
  • 修改了问题 2月14日
  • 修改了问题 2月14日
  • 展开全部

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀