Получение Twitter друзей, чтобы позволить пользователю отмечать их в посте - PullRequest
0 голосов
/ 20 января 2012

Я использую следующие вызовы Twitter API, чтобы получить список людей, за которыми следует пользователь:

https://dev.twitter.com/docs/api/1/get/users/lookup https://dev.twitter.com/docs/api/1/get/friends/ids

Идея состоит в том, чтобы позволить пользователю отправлять DM своимдрузья.Теперь у меня впереди проблема с производительностью, и я хочу посмотреть, как ее решили другие.У меня есть 2 варианта:

1) Всякий раз, когда пользователь входит в систему, если у него есть учетная запись Twitter, я запрашиваю список друзей, индексируем в алфавитном порядке в массиве для более легкого доступа и сохраняем его в сеансах пользователя.Проблема с ним в том, что это делается каждый раз, когда пользователь входит в систему, поэтому, если он следит за большим количеством людей, это займет много времени, так как он может искать только 100 пользователей одновременно, и есть также соглашение об ограничении скорости.Преимущество в том, что у него всегда будет актуальный список пользователей.

2) Делайте то же самое, когда пользователь связывает свою учетную запись Twitter с моим сайтом, и сохраняйте ее в базе данных, это облегчит, когда ямне нужно искать в списке друзей, так как я могу просто выполнить запрос SELECT с помощью LIKE и получить список соответствия тому, что печатает пользователь, я просто не уверен, что это разумно, потому что это заняло бы много места.

Я использую PHP с CakePHP и JQuery.Любые другие идеи приветствуются.

ОБНОВЛЕНИЕ:

Я решил пойти с подходом DB, требуется очень одиноко, чтобы запросить всех друзей, поэтому я бы предпочелсделай это как можно меньше.Теперь, как бы вы подошли к обновлению этого списка?

1 Ответ

1 голос
/ 20 января 2012

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

Вот пример в jQuery

$.getJSON('http://api.twitter.com/1/friends/ids.json?screen_name=smashingmag&callback=?', function(data) {
    $.each(data.ids, function(idx, item) {
        console.log('userId: ' + item);
    });
});

Для получения дополнительной информации ометод см .: https://dev.twitter.com/docs/api/1/get/friends/ids

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...