Steam好友隐身玩游戏?使用SteamWebApi获取好友的游戏时长,并用钉钉推送告诉你他在不在玩

最近,我的一个steam好友经常玩游戏,但是他竟然隐身,我非常生气,玩游戏你就玩吧,你为什么偷偷玩呢??
于是我写了一段脚本,获取了他每日的游戏时长,然后用钉钉给我推送。

下面讲一下脚本的制作过程。

第一步:获取steam信息

首先参考了Steam Web Api,具体可以参考:
Steam Community :: Steam Web API Terms of Use
Steam Web API简易使用介绍

主要使用了这个Api:
最近游玩

http://api.steampowered.com/IPlayerService/GetRecentlyPlayedGames/v1/?key=XXXXXX&steamid=XXXXXX

获取两周内的使用信息。包括产品名称、ID、图标、图片和游玩时间等内容。与Steam社区主页下方的最新动态一样。最后游玩的游戏会排在最前面

有两个参数:
第一个是key,需要在官方的渠道申请一下,域名我填写的localhost即可
密钥申请页面

第二个是steamid,这个就是你好友的steamId了,点击你的steam好友,查看个人资料,网址后面有一排参数,就是了

在这里插入图片描述

第二步:使用钉钉推送

钉钉推送首先你需要有一个群聊,然后在群聊中添加一个群机器人
然后机器人会有一个token,拿取这个token,进行Post提交就可以了,非常简单
具体可以参考
钉钉开放平台-自定义机器人接入

第三步:编写一段Python脚本

import json
import requests
import time
from dingtalkchatbot.chatbot import DingtalkChatbot

# 向钉钉发送信息
def send_message(message):
    webhook = 'https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXX'
    xiaoding = DingtalkChatbot(webhook)
    xiaoding.send_text(msg=message, is_at_all=False)

# 获取steam游戏信息
def get_steam_info():
    url = 'http://api.steampowered.com/IPlayerService/GetRecentlyPlayedGames/v1/?key=XXXXXX&steamid=XXXXXX'
    res = requests.get(url=url)
    user_dic = json.loads(res.text)
    date_val = time.strftime("%Y-%m-%d", time.localtime())
    # 游戏名称
    game_name = user_dic['response']['games'][0]['name']
    # 游戏分钟数
    game_min = user_dic['response']['games'][0]['playtime_forever']
    # 分钟数转小时
    game_hour = round(game_min / 60, 2)
    msg = '提醒:大家好,我是垚垚,今天是{0}, 玩了游戏{1}, 已经玩了{2}小时。'.format(date_val, game_name, game_hour)
    return msg

# 获取游戏信息
msg = get_steam_info()
# 进行钉钉推送
send_message(msg)


# 推送效果:
# 提醒:大家好,我是垚垚,今天是2021-09-18, 玩了游戏Destiny 2, 已经玩了272.83小时。

使用效果:
在这里插入图片描述


版权声明:本文为lujiachun1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。