javascript - 如何按标签过滤 Blogger feed?

标签 javascript google-api blogger

我正在使用 Google 的 Blogger API 从我的 Blogger 博客检索项目以显示在我的主页上。我正在使用Javascript made available on the Blogger Developer's Blog 。我想要做的是过滤标签返回的条目。我做了很多搜索,但是,尽管看起来这应该很简单,但我还没有找到任何明确的方向。

我检索 Blogger 条目的代码如下所示:

function init() {
    // Get your API key from http://code.google.com/apis/console
    gapi.client.setApiKey('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
    // Load the Blogger JSON API
    gapi.client.load('blogger', 'v3', function() {
        // Load the list of posts for code.blogger.com
        var request = gapi.client.blogger.posts.list({
            'blogId': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
            'fields': 'items(content,title,updated,id,labels)',
            'fetchBodies': true
        });
        request.execute(function(response) {

            var blogger = document.getElementById("blogger");
            var anchor = 0;
            for (var i = 0; i < response.items.length; i++)
            {
                var bloggerDiv = document.createElement("div");
                bloggerDiv.id = "blogger-" + i;
                bloggerDiv.className = "bloggerItem";

                // For the parts of the response, have a look at the result at:
                // http://code.google.com/apis/explorer/#_s=blogger&_v=v2&_m=posts.list&blogId=xxxxxxxxxxxxx
                $(bloggerDiv).append("<h2>" + response.items[i].title + "</h2>");
                var date = response.items[i].updated;
                date = date.replace("T", " ");
                date = date.replace("+03:00", "");
                var printDate = new moment(date);
                $(bloggerDiv).append("<p><span class='byline'>" + printDate.format('dddd, MMMM Do YYYY, h:mm:ss a') + "</span></p>");
                $(bloggerDiv).append(response.items[i].content);

// This logic might be useful to keep around if I decide to do
// something different based on whether or not the last item
// needs different formatting in some way.
//        if (i+1<response.items.length) {
//          $(bloggerDiv).append("<hr>");
//        }
//        $(bloggerDiv).append("<hr>");


                bloggerAnchor = document.createElement("a");

                bloggerAnchor.name = "blogger-" + response.items[i].id;

                blogger.appendChild(bloggerAnchor);
                blogger.appendChild(bloggerDiv);

                anchor = anchor + 1;

            }
            // find out which anchor the user wanted...
            var hashVal = window.location.hash.substr(1);
// ... then jump to that position:
            location.hash = "#" + hashVal;
        });
    });
}

这将返回博客上的所有内容。如何让它只返回 label="XYZ" 的条目?

我以为现在就可以回答这个问题了,但是the one question I found on SO似乎相关的链接包含现已失效的链接,因此它们所保存的任何信息现在都不可用。

最佳答案

终于找到了。事实证明这和我想象的一样简单。

我所要做的就是将这行代码添加到请求部分:

    var request = gapi.client.blogger.posts.list({
        'blogId': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
        'fields': 'items(content,title,updated,id,labels)',
        'labels': 'XYZ',
        'fetchBodies': true
    });

有几个让我困惑的地方是该字段是复数形式的“标签”,而不是单数形式的“标签”。另外,由于某种原因,“labels”规范似乎必须出现在“fetchBodies”之前,否则代码会失败。我不确定为什么会这样,但这是我的经验。

关于javascript - 如何按标签过滤 Blogger feed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24950193/

相关文章:

javascript - 删除 Google API V3 中的标记

javascript - setVisible 不适用于 <option>

javascript - js-xlsx - 获取特定行的 excel 表

php - 使用 PHP Google_Client、Google_Service_Blogger 通过 API v3 列出 Blogger 帖子

php - Blogger google api 获取用户标识

javascript - 尝试增量转换为 Typescript 时,非 Typescript 导入失败

objective-c - 为什么我的任何 GDataEntryCalendarEvent 中都没有时间?

google-api - 如何通过 hadoop 集群为 Google Compute Engine 启用 Snappy/Snappy Codec

google-api - Google Apps "AdminReports"未定义。

php - 使用 Blogger Post Image API 上传图片