2014-01-06 5 views
1

Я пытаюсь выяснить, как я могу получить идентификатор пользователя от имени пользователя с помощью Instagram API, но я не везёт ..получить идентификатор пользователя от имени пользователя Instagram

Мой код до сих пор:

$username = 'some user name'; 
$username = strtolower($username); // sanitization 
$token = "ACCESS_TOKEN_HERE"; 
$url = "https://api.instagram.com/v1/users/search?q=".$username."&access_token=".$token; 
$get = file_get_contents($url); 
$json = json_decode($get); 

foreach($json->data as $user) 
{ 
    if($user->username == $username) 
    { 
     return $user->id; 
    } 
} 
+2

Нужно ли URL-адрес кодировать '$ username'? Обратите внимание, что пробелы будут разбивать '$ url'. Попробуйте использовать 'rawurlencode()' вокруг вашего '$ url' – sjagr

+2

Что не работает? Вы получаете какие-либо данные в '$ get'? Можете ли вы повторить это? – Tchoupi

+1

Попробуйте использовать 'http_build_query' для построения строки запроса. '$ query = http_build_query (array ('username' => $ username, 'access_token' => $ token)); $ url = "https://api.instagram.com/v1/users/search?{$query}"; ' –

ответ

0

Используя предложения из комментариев, я смог получить идентификатор пользователя от имени пользователя, используя этот код. Пожалуйста, дайте мне знать, поскольку я не самый большой PHP-разработчик, и может быть более сжатый способ сделать это.

$user = USER_NAME; 
$count = NUMBER_TO_RETURN; 
$token = ACCESS_TOKEN_HERE; 

$query = http_build_query(
       array(
        'q'=>$user, 
        'count'=>$count, 
        'access_token'=>$token 

       ) 
      ); 
    $url = "https://api.instagram.com/v1/users/search?{$query}"; 

    // Gets our data 
    function fetchData($url){ 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
     $result = curl_exec($ch); 
     curl_close($ch); 
     return $result; 
    } 

    // Pulls and parses data. 
    $result = fetchData($url); 
    $result = json_decode($result); 
    $userid = $result->data[0]->id; 
echo $userid; 
+0

Этот подход не подходит для коротких имен пользователей. Например, для этого пользователя - https://instagram.com/mus, вы получите всех видов пользователей, которые соответствуют «mus» - «mussiemu», «musclekingz», «mustafaseven» и т. Д. – ecdeveloper

Смежные вопросы