【问题标题】:How can I get the list of all google fonts WITHOUT using the API key?如何在不使用 API 密钥的情况下获取所有谷歌字体的列表?
【发布时间】:2012-08-31 18:16:28
【问题描述】:

我正在制作一个 wordpress 主题,该主题具有允许用户从 Google 选择自己的字体的功能。显然,因为这是一个 wordpress 主题,所以无法为每次安装创建一个新的 API 密钥。

我只需要按字母顺序排列的字体列表。

如果有人给我一种按类别对他们进行分组的方法,可以获得奖励积分!

【问题讨论】:

    标签: php wordpress google-font-api


    【解决方案1】:

    查看developer API。您可以查询它以获取字体列表。我不确定它是否对它们进行了分类,但你确实得到了很多细节。

    更新:

    您只需要一个超出使用限制的 API 密钥,因此根据您的调用次数,您只需 parse this JSON

    进一步更新:

    看来您现在确实需要一个 API 密钥来调用 Developer API。

    【讨论】:

    • 啊,好吧,我刚刚发现这个question 也很有帮助,所以我可以按照我的意愿来格式化它。现在,有没有办法直接从该链接中获取该 json 而不是将其复制到文件中?
    • 看一下php.net/manual/en/function.file-get-contents.php,然后用json_decode把它放到一个数组中应该就好了。
    • This 显示更新到小时的可用谷歌字体列表。
    • “解析此 JSON”的权限被拒绝。我上面评论中的链接也过期了。
    • 我已经更新了答案。看来您现在需要一个 API 密钥 - 但可以从开发者控制台免费获取。
    【解决方案2】:

    我会用我需要的最小值构建我的列表并将其存储在本地。 您可以将其作为 json 字符串存储在您的页面上。

    例如在浏览器中打开: https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY

    var allGoogleFonsts = JSON.parse(JSON_RESULT);
    
    var fontFamilyWithCategory = allGoogleFonsts.items.map(fontItem => {
        return {
            family: fontItem.family,
            category: fontItem.category,
        };
    });
    
    var groupBy = function(xs, key, value) {
      return xs.reduce(function(rv, x) {
        (rv[x[key]] = rv[x[key]] || []).push(x[value]);
        return rv;
      }, {});
    };
    
    var fontFamilyByCategory = groupBy(fontFamilyWithCategory, 'category', 'family');
    

    现在您可以在没有 api 调用的情况下存储和使用它:

    console.log(JSON.stringify(fontFamilyByCategory));
    

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 2010-12-09
      • 2012-05-04
      相关资源
      最近更新 更多