Это деструктурирующий синтаксис присваивания.
В качестве другого примера следующие две строки кода равны:
const { items } = args
const items = args.items
Проще говоря, это упрощенный способ доступа к конкретным поле данной переменной для дальнейшего использования в этой области.
В вашем исходном примере она объявляет переменную items
для использования в теле функции, которая является полем items
этого первого аргумента.
const SortableList = SortableContainer(({items}) => {
// do stuff with items here
равно
const SortableList = SortableContainer((input) => {
const items = input.items
// do stuff with items here
Просто измените это и попробуйте, это работает для меня
try {
Log.i("act twitter...........", "ModifiedCustomTabBarActivity.class");
// final JSONArray twitterFriendsIDsJsonArray = new JSONArray();
IDs ids = mTwitter.mTwitter.getFriendsIDs(-1);// ids
// for (long id : ids.getIDs()) {
do {
for (long id : ids.getIDs()) {
String ID = "followers ID #" + id;
String[] firstname = ID.split("#");
String first_Name = firstname[0];
String Id = firstname[1];
Log.i("split...........", first_Name + Id);
String Name = mTwitter.mTwitter.showUser(id).getName();
String screenname = mTwitter.mTwitter.showUser(id).getScreenName();
// Log.i("id.......", "followers ID #" + id);
// Log.i("Name..", mTwitter.mTwitter.showUser(id).getName());
// Log.i("Screen_Name...", mTwitter.mTwitter.showUser(id).getScreenName());
// Log.i("image...", mTwitter.mTwitter.showUser(id).getProfileImageURL());
}
} while (ids.hasNext());
} catch (Exception e) {
e.printStackTrace();
}
Попробуйте это ...
ConfigurationBuilder confbuilder = new ConfigurationBuilder();
confbuilder.setOAuthAccessToken(accessToken)
.setOAuthAccessTokenSecret(secretToken)
.setOAuthConsumerKey(TwitterOAuthActivity.CONSUMER_KEY)
.setOAuthConsumerSecret(TwitterOAuthActivity.CONSUMER_SECRET);
Twitter twitter = new TwitterFactory(confbuilder.build()).getInstance();
PagableResponseList<User> followersList;
ArrayList<String> list = new ArrayList<String>();
try
{
followersList = twitter.getFollowersList(screenName, cursor);
for (int i = 0; i < followersList.size(); i++)
{
User user = followersList.get(i);
String name = user.getName();
list.add(name);
System.out.println("Name" + i + ":" + name);
}
listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1 , list));
listView.setVisibility(View.VISIBLE);
friend_list.setVisibility(View.INVISIBLE);
post_feeds.setVisibility(View.INVISIBLE);
twit.setVisibility(View.INVISIBLE);
}
Вы должны обязательно использовать getFollowersIDs
. Как сказано в документации, это возвращает массив (список) объектов IDs
. Обратите внимание, что это приводит к тому, что список разбивается на страницы примерно 5000 идентификаторов за раз. Чтобы начать пейджинг, введите в качестве курсора значение -1. Ответ от API будет включать в себя предыдущий_курсор и next_cursor, чтобы разрешить пейджинг взад и вперед.
Трудная часть - обработать курсор. Если вы можете это сделать, тогда у вас не будет проблемы с получением всего 20 последователей.
Первому вызову getFollowersIDs должен быть задан курсор -1. Для последующих вызовов вам нужно обновить значение курсора, получив следующий курсор, как это сделано во время части цикла.
long cursor =-1L;
IDs ids;
do {
ids = twitter.getFollowersIDs(cursor);
for(long userID : ids.getIDs()){
friendList.add(userID);
}
} while((cursor = ids.getNextCursor())!=0 );
Вот очень хорошая ссылка: https: //github.com/yusuke/twitter4j/blob/master/twitter4j-examples/src/main/java/twitter4j/examples/friendsandfollowers/GetFriendsIDs.java
Теперь, если пользователь имеет более чем около 75000 последователей, вам придется немного подождать (см. ответ Вишала). Первые 15 вызовов дадут вам около 75000 идентификаторов. Затем вам придется спать 15 минут. Затем сделайте еще 15 звонков и так далее, пока не получите всех последователей. Это можно сделать, используя простой Thread.sleep(time_in_milliseconds)
вне цикла for
.
Это сложно. Вы должны указать, используете ли вы приложение или токены пользователя и количество пользователей, которых вы извлекаете для followers_ids.
В случае токена приложения вы получаете всего 15 вызовов за 15 минут. Вы можете получить максимум 5000 подписчиков за звонок. Это дает вам максимум 75 тыс. Последователей в течение 15 минут. Если у кого-то из пользователей, которых вы выберете followers_ids for, есть более 75 тыс. Последователей, вы сразу получите ошибку rate_limit. Если вы загружаете более одного пользователя, вам нужно будет создать сильную обработку rate_limit в своем коде со сном и быть очень терпеливым.
То же самое относится к friends_ids.
Мне не приходилось иметь дело с получением более 75 тыс. Последователей / друзей для данного пользователя, но подумайте об этом, я не знаю, возможно ли это еще больше.