首先使用 Stack Exchange 的 用户 API 这里,您可以通过一个端点 URL 以 JSON 格式获取您的 Stack Overflow 帐户信息。您只需在 ID 字段中指定您的 Stack Overflow 用户ID并单击 运行 按钮即可生成端点路径。您可以通过点击个人资料图片来获取您的 Stack Overflow 用户ID,它将出现在搜索栏中。
将生成的路径添加到 https://api.stackexchange.com 中,以形成端点 URL。
我的 Stack Exchange 端点 URL: https://api.stackexchange.com/2.2/users/9133459?order=desc&sort=reputation&site=stackoverflow
现在我们已经获得了以 JSON 格式呈现的 Stack Overflow 信息,我们可以继续解析它并创建满足 Shields 要求的新端点。为此,您需要在 RunKit 上创建一个帐户。在 RunKit 上发布此段代码,并确保 Node 版本为 v4.9.1(用先前生成的自己的端点 URL 替换代码中的 URL):
var endpoint = require("@runkit/runkit/json-endpoint/1.0.0");
var fetch = require("node-fetch");
var url = "https://api.stackexchange.com/2.2/users/9133459?order=desc&sort=reputation&site=stackoverflow";
let settings = { method: "Get" };
endpoint(module.exports, async function()
{
try {
await fetch(url, settings)
.then(res => res.json())
.then((json) => {
reputation = json["items"][0].reputation;
if (reputation >= 1000) {
reputation = reputation / 1000;
reputation = Math.floor(reputation * 10) / 10;
if ((reputation * 10) % 10 == 0) {
reputation = Math.round(reputation);
}
reputation = reputation.toString();
reputation += "K";
}
});
} catch(e) {
return {
"schemaVersion": 1,
"label": "STACKOVERFLOW REPUTATION",
"message": "API ERROR",
"color": "FF0000",
"labelColor": "black",
"style": "for-the-badge"
}
}
return {
"schemaVersion": 1,
"label": "STACKOVERFLOW REPUTATION",
"message": reputation,
"color": "FE7A16",
"labelColor": "black",
"style": "for-the-badge"
}
})
发布后,点击 RunKit 页面顶部的端点超链接,以查看要传递给 shields 以创建徽章的端点 URL。
这是我的 RunKit 端点 URL:https://stack-overflow-reputation-ciqil1ej93hq.runkit.sh
现在,只需前往 shields.io 的 JSON 端点徽章页面此处并将 URL 粘贴如下:
除了复制徽章 URL 的选项外,您还可以选择复制 markdown 版本,将其复制并粘贴到 GitHub 个人资料页的 README 中。
Markdown 输出结果:
注意:您可以通过更改 RunKit 代码中的 JSON 返回语句或覆盖要更改的 JSON 端点徽章页面中的内容来更改徽章的设计。可以更改的属性列在同一页上。