Как получить сообщения в блоге по ярлыку в API блогов

Найдите функцию «sortFn» ниже. Эта функция сортируется по неограниченному числу параметров (например, в c #: SortBy (...). ThenBy (...). ThenByDesc (...)).

function sortFn() {
    var sortByProps = Array.prototype.slice.call(arguments),
        cmpFn = function(left, right, sortOrder) {
            var sortMultiplier = sortOrder === "asc" ? 1 : -1;

            if (left > right) {
                return +1 * sortMultiplier;
            }
            if (left < right) {
                return -1 * sortMultiplier;
            }
            return 0;
        };


    return function(sortLeft, sortRight) {
        // get value from object by complex key
        var getValueByStr = function(obj, path) {
            var i, len;

            //prepare keys
            path = path.replace('[', '.');
            path = path.replace(']', '');
            path = path.split('.');

            len = path.length;

            for (i = 0; i < len; i++) {
                if (!obj || typeof obj !== 'object') {
                    return obj;
                }
                obj = obj[path[i]];
            }

            return obj;
        };

        return sortByProps.map(function(property) {
            return cmpFn(getValueByStr(sortLeft, property.prop), getValueByStr(sortRight, property.prop), property.sortOrder);
        }).reduceRight(function(left, right) {
            return right || left;
        });
    };
}

var arr = [{
    name: 'marry',
    LocalizedData: {
        'en-US': {
            Value: 10000
        }
    }
}, {
    name: 'larry',
    LocalizedData: {
        'en-US': {
            Value: 2
        }
    }
}, {
    name: 'marry',
    LocalizedData: {
        'en-US': {
            Value: 100
        }
    }
}, {
    name: 'larry',
    LocalizedData: {
        'en-US': {
            Value: 1
        }
    }
}];
document.getElementsByTagName('pre')[0].innerText = JSON.stringify(arr)

arr.sort(sortFn({
    prop: "name",
    sortOrder: "asc"
}, {
    prop: "LocalizedData[en-US].Value",
    sortOrder: "desc"
}));

document.getElementsByTagName('pre')[1].innerText = JSON.stringify(arr)
pre {
    font-family: "Courier New" Courier monospace;
    white-space: pre-wrap;
}
Before:
<pre></pre>
Result:
<pre></pre>

2
задан Prayag Verma 8 March 2019 в 16:06
поделиться

1 ответ

Опция поискового запроса (q =)

Если вы хотите получать сообщения с определенной меткой, вы можете использовать этот запрос:

GET https: //www.googleapis.com/blogger/v3/blogs/2399953/posts/search?q=label:label1&key=THE-KEY

Если вы хотите получать сообщения с пометкой ' это ', а также ' то '(если один из них не совпадает, это не совпадение), вы можете использовать:

GET https: //www.googleapis. com / blogger / v3 / blogs / 2399953 / posts / search? q = метка: this + метка: тот & ключ = THE-KEY

Используйте кавычки вокруг меток с пробелами:

[1117 ] GET https://www.googleapis.com/blogger/v3/blogs/15045980/posts/search?q=label%3A%22James+Whittaker%22&key=THE-KEY

Вероятно, лучший вариант, чтобы получать сообщения по ярлыкам

Источник: https://developers.google.com/blogger/docs/3.0/reference/posts/list

HTTP-запрос:

GET https://www.googleapis.com/blogger/v3/blogs/blogId/posts

Среди необязательных параметров есть [1 11] параметр:

labels string Comma-separated list of labels to search for.

Пример HTTP-запроса (с использованием blogId блога тестирования Google):

GET https: //www.googleapis. com / blogger / v3 / blogs / 15045980 / posts? label = James + Whittaker & amp; key = THE-KEY

Обратите внимание, что кавычки вокруг метки не должны быть включены , а не , используя это вариант.

Для получения следующей страницы постов сохраните заданный nextPageToken, как указано в комментариях, и поместите его в параметр pageToken, например:

GET https: // www.googleapis.com/blogger/v3/blogs/15045980/posts?labels=James+Whittaker&pageToken=CgkIChiAjpb65CUQ3KqWBw&key=THE-KEY

0
ответ дан Wieger 8 March 2019 в 16:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: