Meteor с пакетом FBGraph NPM - нумерация страниц и увеличение лимита

Я следовал руководству (www.andrehonsberg.com/article/facebook-graph-api-meteor-js), которое является руководством по использованию пакета FBgraph NPM (www).npmjs.org/package/fbgraph с Meteor.

Все работает нормально, я настроил его в соответствии со своими потребностями, которые в основном заключаются в том, что он подсчитывает количество тегов в комментарии к идентификатору объекта Facebook, и если один и тот же комментатор оставил несколько комментариев, это будет учитываться в общем количестве, хранящемся в объект.

Проблема в том, что он перестает считать после 25 записей. Это означает, что ограничение Graph API по умолчанию в 25 — это то, что будет пройдено. Поэтому я пытаюсь выяснить, как увеличить лимит на него.

Что не сработало

добавление ?limit=100 к URL-адресу запроса. изменение line 17 in facebook.js путем добавления {limit: 100} следующим образом:

var data = Meteor.sync(function(done) {
    self.fb[method](query, {limit: 100}, function(err, res) {
        done(null, res);
    });

добавив {limit:100} в строку 5 this.options следующим образом:

this.options = {
    timeout: 3000,
    limit: 100,
    pool: {maxSockets: Infinity},
    headers: {connection: 'keep-alive'}
}

КОД

https://github.com/khalidaljaaidi/CountTags Рассматриваемый файл: (www).github.com/ khalidaljaaidi/CountTags/blob/мастер/сервер/facebook.js


person Ether    schedule 16.11.2013    source источник


Ответы (1)


Я немного посмотрел на график NPM FB, и похоже, что проблема может быть связана с границей var в form_data.js. Если вы перейдете в packages/npm/package/node_modules/fbgraph/node_modules/request/node_modules/form-data/lib, там должен быть файл с именем form_data.js. В строке 162 есть такой код:

FormData.prototype._generateBoundary = function() {
  // This generates a 50 character boundary similar to those used by Firefox.
  // They are optimized for boyer-moore parsing.
  var boundary = '--------------------------';
  for (var i = 0; i < 24; i++) {
    boundary += Math.floor(Math.random() * 10).toString(16);
  }

  this._boundary = boundary;
};

Я не проверял это, однако вы можете попробовать увеличить 24, чтобы увидеть, сможете ли вы увеличить лимит сообщений.

Надеюсь это поможет!

person sokeefe    schedule 22.12.2013
comment
Это не поможет. Эта функция создает границу, которая используется в данных формы. Эта граница состоит из 26 дефисов, за которыми следуют 24 случайных значения. - person Hibbem; 17.06.2021