2017-01-17 7 views
0

У меня возникли проблемы с передачей результатов запроса friends/ids на запрос users/lookup при использовании Abraham's Twitter OAuth (https://twitteroauth.com/) Библиотека PHP для доступа к API REST Twitter.Twitter API с PHP - не может передавать результаты поиска друзей/идентификаторов пользователям/поисковый запрос с использованием библиотеки abrahams twitter oauth

После аутентификации, я получаю список друзей между аккаунтом, в качестве пользовательских идентификаторов:

$content = $connection->get("followers/ids", ["screen_name" => $input]); 

Затем я создаю список разделённых запятыми:

foreach ($content as $user) { 
$userlist = implode(', ', $user); 

И тогда я передаю это к пользователи/запрос на поиск:

$output = $connection->post("users/lookup", ["user_id" => $userlist]); 

Это дает код 17 error, который, как я понимаю, не имеет значения ccount был идентифицирован 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" 

Я попытался преобразование результатов первого запроса (друзья/IDS) в массив:

$contentarray = json_decode(json_encode($content), True); 

, но это не имеет никакого значения. Я также пробовал передать список идентификаторов в виде массива (и в качестве запроса в качестве запроса определял $ userlist как таковой). Обертка $userlist в кавычках тоже не работает, и я не использую GET или POST. Аналогично, создание другого массива только user_ids (исключая курсоры) и создание списка, разделенного запятыми, не имеет значения.

Twitter OAuth, как правило, настолько прост и интуитивно понятен в использовании, но я потратил часы на это и никуда не ушел. Может ли кто-нибудь помочь, где я ошибаюсь?

ответ

0

Так получилось, что проблема была в моей петле foreach. Кончик шляпы до hobbes3 для this answer.

После аутентификации:

// 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]);