2015-02-02 14 views
5

Chciałbym wiedzieć, czy istnieje sposób sprawdzenia, czy plakietka weryfikacyjna użytkownika z interfejsem API Instagram?Interfejs API Instagram: czy mogę sprawdzić, czy użytkownik jest zweryfikowany?

ja zobaczyłem, że https://api.instagram.com/v1/users/ {user-id} nie powróci, jeśli użytkownik jest weryfikowana, ale jeśli wyświetlić kod źródłowy strony użytkowników, można zobaczyć, że ma wartość logiczną, która zwany klucz isVerified i to wartość wewnątrz struktury json użytkownika.

Dzięki!

Odpowiedz

4

OK, to nie jest dobra odpowiedź, ale oto jak zrealizowałem to samo zadanie. Raz mam nazwę użytkownika z interfejsu API zrobić następujące regex od źródła ich profilu:

$response = file_get_contents('https://instagram.com/'.$username); 
if (preg_match('/"user":\{"username":"'.$username.'",.*?"isVerified":true\},"__path":".*?'.$username.'.*?"/s', $response) || preg_match('/<meta content=".*?official.*?account.*?" name="description" \/>/is', $response)) { 
    print "VERIFIED USER!"; 
} 

Jak już mówiłem to jest super hacky ale API obecnie nie przewiduje wartości isVerified. Do tego czasu używam tego wyrażenia regularnego. Wyszukuje "isVerified": prawdziwa część struktury JSON, do której się odwołujesz. (przykład: https://instagram.com/taylorswift)

Dodaliśmy także dodatkowy czek, jeśli w tagu meta treści znajduje się "oficjalne konto", to zakładamy, że jest oficjalny. (przykład: https://instagram.com/3doorsdown) Dodaliśmy tę kontrolę, ponieważ Instagram zaczął robić zweryfikowane konta w 2014 roku i jest sporo celebrytów, które jeszcze nie otrzymały zweryfikowanej plakietki. Powinien odebrać niektóre kawałki, ale może również przynieść fałszywe pozytywne wyniki.

UWAGA: To rozwiązanie zostanie przerwane, jeśli Instagram kiedykolwiek zmieni strukturę JSON lub metatagi na swoich stronach, więc używaj jej na własne ryzyko. Potrzebowaliśmy tylko skryptu, by sprawdzić niewielką liczbę nazw użytkowników dla zweryfikowanych identyfikatorów i szybko wymyśliłem to. Najlepsze rozwiązanie będzie zawsze, gdy zaktualizują swoje API.

Powiązane problemy