У меня проблемы с передачей результатов friends/ids
запрос к users/lookup
запрос при использовании Авраама в Twitter OAuth (https://twitteroauth.com/) PHP-библиотека для доступа к Twitter REST API.
После аутентификации я получаю список друзей аккаунта как идентификаторы пользователей:
$content = $connection->get("followers/ids", ["screen_name" => $input]);
Затем я создаю список через запятую:
foreach ($content as $user) {
$userlist = implode(', ', $user);
И затем я передаю это в запрос пользователей / поиска:
$output = $connection->post("users/lookup", ["user_id" => $userlist]);
Это дает ошибку кода 17, которая, как я понимаю, означает, что такая учетная запись не была обнаружена Twitter. Вывод взорванного $userlist
показывает, что этот шаг работает нормально.
Если я определю $userlist
я тогда последующий звонок users/lookup
работает отлично. Например:
$userlist = "820310862045052930, 806614673474912256, 745020013837434880, 789205729123065860, 717272899741204480, 2523773164, 763810846929719296, 817061186705457152, 806495626670186496, 1935657786, 813858305282109442, 224295002, 24016369, 719472791200739328, 3292608016, 544394440, 338499233, 704776216, 1080910670, 2162932007, 15700673, 2212757984, 375238808, 2949937593, 244523746, 145021177, 4195801821, 799570638847561728"
Я попытался преобразовать результаты первого запроса (friends / ids) в массив:
$contentarray = json_decode(json_encode($content), True);
но это не имеет значения. Я также попытался передать список идентификаторов в виде массива (и определить $ userlist как таковой в запросе). Упаковка $userlist
в кавычках тоже не работает и не имеет значения, использую ли я GET или POST. Точно так же создание другого массива только user_ids (исключая курсоры) и создание списка, разделенного запятыми, не имеет значения.
Twitter OAuth обычно настолько прост и интуитивно понятен в использовании, но я потратил на это часы и никуда не деться. Может кто-нибудь помочь с тем, где я иду не так?
Вот и получается, проблема была с моим foreach
петля. Шляпа совет hobbes3 за этот ответ.
После аутентификации:
// get the user's followers
$content = $connection->get("followers/ids", ["screen_name" => $input]);
// replace stdclass object with array
$content_as_array = json_decode(json_encode($content), True);
//create new array with foreach
$content_as_new_array = array();
foreach($content_as_array as $user) {
foreach($user as $newuser) {
array_push($content_as_new_array, $newuser);
}
}
// implode this new array
$userlist = implode(", ", $content_as_new_array);
// and pass this new array to API
$output = $connection->post("users/lookup", ["user_id" => $userlist]);
Других решений пока нет …