2013-01-19 10 views
5
$url = 'https://api.instagram.com/v1/users/XXXX?access_token=XXXX'; 
echo json_decode(file_get_contents($url))->{'followed_by'}; 

Używam tego kodu i nie rozumiem, o co chodzi. Jestem nowy w PHP, więc przepraszam za błąd początkującego. Próbuję wyświetlić "follow_by", aby wyświetlić sam. Udało mi się przekonać zwolenników Facebooka do "like" i Twittera do wyświetlania w ten sposób.Uzyskiwanie podstawowych informacji z Instagrama przy użyciu PHP

Odpowiedz

2

Zgodnie z Instagram API Docs, followed_by jest dzieckiem counts, które jest dzieckiem data.

https://api.instagram.com/v1/users/1574083/?access_token=ACCESS-TOKEN 

Powroty:

{ 
"data": { 
    "id": "1574083", 
    "username": "snoopdogg", 
    "full_name": "Snoop Dogg", 
    "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg", 
    "bio": "This is my bio", 
    "website": "http://snoopdogg.com", 
    "counts": { 
     "media": 1320, 
     "follows": 420, 
     "followed_by": 3410 
    } 
} 

Poniższa powinno działać.

<?php 
$url = 'https://api.instagram.com/v1/users/XXXX?access_token=XXXX'; 
$api_response = file_get_contents($url); 
$record = json_decode($api_response); 
echo $record->data->counts->followed_by; 

// if nothing is echoed try 
echo '<pre>' . print_r($api_response, true) . '</pre>'; 
echo '<pre>' . print_r($record, true) . '</pre>'; 
// to see what is in the $api_response and $record object 
+0

Po prostu próbowałem kodu, który podałeś, ale to nie działa (próbowałem obu echo na własną rękę). Upewniłem się nawet, że moja api.instagram.com/xxx jest ważna i tak właśnie jest. –

+0

@NazarAbubaker - Czy jesteś pewien, że twój access_token jest poprawny - jak go generujesz? Wypróbuj powyższy kod i daj nam znać, co jest zwracane przez interfejs API. – PassKit

+0

Użyłem tego do wygenerowania access_token [link] http://jelled.com/instagram/access-token [/ link]. Zaczerpnięte z [link] http://stackoverflow.com/questions/12677551/how-to-get-access-token-from-instagram-token-using-jquery-or-php [/ link] Wszystko, co dostaję, to "Ostrzeżenie: file_get_contents() [function.file-get-contents]: Nie można znaleźć opakowania " https " - czy zapomniałeś włączyć go po skonfigurowaniu PHP? W XXX w linii 36" –

1

Spróbuj ..

<?php 
$instagram = "https://api.instagram.com/v1/users/xxxxx/?access_token=xxxxx"; 
$instagram_follows = json_decode(file_get_contents($instagram))->data->counts->followed_by; 
echo $instagram_follows; 
?> 
0

Spróbuj tego ...

$url = 'https://api.instagram.com/v1/users/USER_ID?access_token=YOUR_TOKEN'; 
$api_response = file_get_contents($url); 
$record = json_decode($api_response); 

echo $followed_by = $record->data->counts->followed_by; 

Click aby uzyskać wszystkie informacje z użytkownikiem

1
function get_https_content($url=NULL,$method="GET"){ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_VERBOSE, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0'); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    return curl_exec($ch); 
} 

function ig_count($username) { 
    return json_decode(get_https_content("https://api.instagram.com/v1/users/1460891826/?client_id=ea69458ef6a34f13949b99e84d79ccf2"))->data->counts->followed_by; 
} 

Oto mój kod:)

14

w przypadku trzeba chwycić liczby popychacza (lub inne pola) bez logowania, Instagram jest na tyle miły, aby umieścić je w JSON wewnątrz źródła strony:

$raw = file_get_contents('https://www.instagram.com/USERNAME'); //replace with user 
preg_match('/\"followed_by\"\:\s?\{\"count\"\:\s?([0-9]+)/',$raw,$m); 
print intval($m[1]); 

//returns "123" 

nadzieję, że pomoże.

24 maja 2016 Zaktualizowano, aby być bardziej tolerancyjnym na przestrzenie w JSON.

+0

to zadziałało dla mnie. –

+0

Nadal działa dla mnie - marzec 2017 :-D – michaelmcgurk

+1

Po ** godzinach ** próbując wdrożyć to za pomocą interfejsu API Instagram, skończyło się na tym rozwiązaniu. **Dziękuję Ci**. Najgorszy projekt i dokumentacja interfejsu API, których nigdy nie widziałem. Musisz nawet wysłać _screencast_ wyjaśniający, co chcesz zrobić z API, aby wyjść z trybu piaskownicy. Chcę tylko, aby obserwatorzy liczyli się dla dowolnego użytkownika, który i tak jest informacją publiczną. To szaleństwo. – Marc