С отсутствующим белым списком для тех, кто не является дедушкой или деловыми партнерами Twitter, я не думаю, что у вас есть какая-либо альтернатива, кроме как заставить ваше мобильное приложение выполнять вызовы API Twitter с телефона.
Возможность звонить по телефону с Twitter - это неплохо.Практически каждый клиент Twitter в мире делает это.Одним из преимуществ будет то, что пользователь будет аутентифицирован в Twitter, и, таким образом, вам будут доступны его полные 350 звонков в час.Имейте в виду, однако, что вам следует свести к минимуму ваши звонки, поскольку у пользователя могут быть установлены другие приложения с поддержкой Twitter на его телефонной трубке, которые поглощают ваше выделение вызовов, и наоборот.
Теперь к решению.Я бы реализовал ваш вариант использования, чтобы сначала получить полный список друзей для вашего пользователя, вызвав метод friends / ids .
http://api.twitter.com/1/friends/ids.json?screen_name=yourUsersName
Приведенный выше вызов вернетсамые последние 5000 идентификаторов друзей в порядке следования для @ yourUsersName .Если вы хотите получить больше идентификаторов друзей, чем первые 5000, вам нужно указать параметр cursor , чтобы инициировать paging .
Далее я бы проверилпоследний список друзей, которые мы только что выбрали для списка на телефоне, синхронизируя их, удаляя все идентификаторы, которых больше нет, и добавляя новые.
Если нам нужны только идентификаторы друзей, тогда мы совершаем плату за один вызов API на 5000 идентификаторов друзей.Однако, если нам необходимо получить информацию о пользователях и для этих новых друзей, я бы позвонил users / lookup и передал список всех новых пользователей, которых мы обнаружили при синхронизации идентификаторов друзей.Вы можете запросить до 100 пользовательских объектов одновременно.
http://api.twitter.com/1/users/lookup.json?user_id=123123,5235235,456243,4534563
Ваш пользователь должен пройти проверку подлинности, чтобы выполнить вышеуказанный запрос, но вызов может получить любые профили пользователей Twitter, которые выжелание - не только те, которые являются друзьями аутентифицированного пользователя.
Итак, скажем, например, что у пользователя 2500 друзей и он никогда не использовал ваше приложение раньше.В этом случае она будет записывать один звонок, чтобы получить все идентификаторы друзей, и 25 звонков для получения информации ее друзей.Это не так уж плохо, чтобы приложение заполнялось данными.
Последующие вызовы должны быть более упорядоченными, возможно, сгорят только два вызова (один для идентификаторов и один для получения новых друзей).
Наконец, после того, как данные были обновлены на телефоне, можно собрать дельты для идентификаторов и пользовательских данных и отправить их на ваш сервер.
Может даже оказаться, что вашему серверному приложению вообще не придется взаимодействовать с Twitter, и это должно уменьшить ограничение на 150 пользователей, с которым вы сталкиваетесь.
Некоторые заключительные замечания:
- Обязательно отметьте в политике конфиденциальности вашего приложения, что вы синхронизируете список друзей вашего пользователя с вашим сервером.
- Я рекомендую указать JSON в качестве возвратаформат для всех вызовов API Twitter.Это гораздо более легкий формат документа, чем XML, и вы, как правило, будете передавать по проводам только от 1/3 до 1/2 объема данных.
- Выберите подходящую платформу Twitter дляваше мобильное устройство и ваш язык программирования.В настоящее время доступ к Твиттеру является товаром, и нет оснований изобретать способ доступа к API Twitter.
Я ответил на аналогичный вопрос о подходе для эффективного извлечения подписчиков здесь .