├── json
├── classSteamCard.php
├── SteamAPI.php
├── GetSteamData.php
├── loading.svg
└── images
│ └── loading.svg
├── LICENSE
├── README.md
└── page-steam.php
/json/classSteamCard.php:
--------------------------------------------------------------------------------
1 |
";
10 | } else {
11 | echo "

";
12 | }
13 | echo "";
14 |
15 | // 缓存游戏库数据
16 | $api_url = $steamAPI . "?id=" . $id . "&key=" . $key; //拼接api_url
17 | // echo "$api_url";
18 | if (!file_exists("json/steam.json")) { //缓存Steam API数据24小时,使用我的API请不要改为0
19 | file_put_contents("json/steam.json", file_get_contents($api_url));
20 | } else if ((time() - filemtime("json/steam.json")) > 86400) {
21 | file_put_contents("json/steam.json", file_get_contents($api_url));
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 雾时之森
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/json/SteamAPI.php:
--------------------------------------------------------------------------------
1 | $url,
20 | CURLOPT_RETURNTRANSFER => true,
21 | CURLOPT_ENCODING => '',
22 | CURLOPT_MAXREDIRS => 10,
23 | CURLOPT_TIMEOUT => 0,
24 | CURLOPT_FOLLOWLOCATION => true,
25 | // CURLOPT_PROXY => "127.0.0.1", // 代理IP
26 | // CURLOPT_PROXYPORT => 7890, // 代理端口
27 | CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
28 | CURLOPT_CUSTOMREQUEST => 'GET',
29 | CURLOPT_HTTPHEADER => array(
30 | 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0',
31 | 'Accept-Language: zh-CN'
32 | ),
33 | ));
34 | $response = curl_exec($curl);
35 | curl_close($curl);
36 | // echo ($response);
37 | return $response;
38 | }
39 |
--------------------------------------------------------------------------------
/json/GetSteamData.php:
--------------------------------------------------------------------------------
1 | ";
20 | //echo var_dump($game_data);
21 |
22 | // 构造请求接口
23 | foreach ($game_data as $key => $value) {
24 | // limit
25 | $appid = $game_data[$pagenum]['appid'];
26 |
27 | if ($key == $limit || $appid == NULL) {
28 | break;
29 | }
30 | $array[$key]['num'] = $key;
31 | $array[$key]['name'] = $game_data[$pagenum]['name'];
32 | // 中国大陆 CDN 图片加速
33 | $array[$key]['logo'] = "https://cdn.cloudflare.steamstatic.com/steam/apps/" . $appid . "/capsule_184x69.jpg";
34 | $array[$key]['appid'] = $appid;
35 | // 游玩时间计算 - 单位:小时
36 | $min_forever = $game_data[$pagenum]['playtime_forever'];
37 | $hours_forever = ceil($min_forever / 60);
38 | $array[$key]['hours_forever'] = !empty($hours_forever) ? (string)$hours_forever : "0";
39 | $pagenum++;
40 | }
41 | echo '{"total": ' . $total . ',"total_page": ' . $total_page . ', "limit": ' . $limit . ', "page": ' . $page . ', "data":' . json_encode($array, true) . '}';
42 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 在你的 WordPress 博客展示 Steam 游戏库
2 | 作为一个爱玩游戏的人,博客怎么能没有你的游戏库呢,所以按理是要把它攒出来的。本页面模版**理论**适配了大部分主题,部分布局比较奇葩的主题也能用但是需要修改样式,如果你有更好看的样式,也可以分享给我们~
3 |
4 | 本页面模版由 [蘑菇](https://fairysen.com/) 和 [阿肾](https://imashen.cn/) 二人合作开发完成,您可以使用和二次修改但请务必保留版权,谢谢!
5 |
6 | 插件版由 [野兔](https://www.azimiao.com) 制作:
7 |
8 |
9 | ## 二次开发说明
10 | 由于 Steam 修改相关政策,导致原有的数据获取方式失效,于是我在 `蘑菇` 和 `阿肾` 二人的基础上对 SteamAPI 进行修复,现在个人游戏库相关的数据通过 Steam 官方提供的 Web API 获取。同时也修改了 Steam 个人资料卡片的获取方式,由 [exophase](https://gamercards.exophase.com) 网站提供支持。
11 |
12 | ## README
13 | 1. 下载项目中的文件,将 `page-steam.php` 扔到你的主题根目录,将 `json` 目录扔到你的站点根目录
14 | 2. 修改 `page-steam.php` 文件
15 | - 第 196 行填写 SteamID;
16 | - 第 197 行填写 Steam Web API 密钥;
17 | - 第 198 行填写 exophase 网站生成的个人资料卡片链接;
18 | - 第 203 行填写 SteamAPI 接口地址
19 | - 详细及其他请参考代码注释修改。
20 | 3. 服务器在境内,理论上API地址未被屏蔽,若不幸被屏蔽可修改 `SteamAPI.php` 文件第 25、26 行,自行添加代理;若服务器在境外直接走本地即可
21 | 4. 信息填好后,在 `WP后台 - 新建页面` 选择 `Steam游戏库` 这个模版
22 | 5. 若发现游戏库/游戏时长不正常显示,请到 Steam 个人设置界面,将数据全部改为公开,记得 ***游戏详情*** 底下有个附属选项,不要打勾 ✔
23 |
24 | ## API
25 | 接口文档:https://steamapi.xpaw.me/
26 |
27 | ## DEMO
28 | [Steam游戏库](https://blog.grayzhao.com/together-game/)
29 |
30 | ## ISSUE
31 | 1. 如果数据不对,请手动删除 `steam.json` 文件,再次打开页面数据将会自动更新
32 | 2. 关于打开没有数据的问题请检测你的 Steam 游戏库是否设置为公开,信息是否填写正确,手动请求API是否能得到数据,格式为:`https://你的域名/json/SteamAPI.php?id=你的SteamID&key=您的 Steam Web API 密钥`
33 | 3. 第一次打开没有数据需要手动刷新一遍,请检查你是否开启了 *AJAX*
34 | 4. 打开页面报错,请使用 Chrome 浏览器或者 FireFox 浏览器,F12 查看具体错误
35 | 5. 如果第一次打开样式有问题就把 CSS 添加到全局里
36 | 6. 本页面模版理论适配了大部分 WP 主题,部分布局比较奇葩的主题也能用但是可能需要修改样式
37 |
--------------------------------------------------------------------------------
/json/loading.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/json/images/loading.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/page-steam.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
194 |
195 |
207 |
208 |
209 |
210 |
211 | - 上一页
212 | - 下一页
213 |
214 |
215 |
216 |
219 |
220 |
272 |
273 |
275 |