最近,我的一个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小时。
使用效果: