2015-02-02 15 views
5

Vorrei sapere se esiste un modo per verificare se il badge di verifica dell'utente con l'API di Instagram?Instagram API: Posso controllare se l'utente è verificato?

Ho visto che https://api.instagram.com/v1/users/ {user-id} non restituisce se l'utente è verificato, ma se si visualizza il codice sorgente di una pagina di utenti, è possibile vedere che ha un valore booleano chiamato "Chiave certificata" ed è valore all'interno di una struttura json dell'utente.

Grazie!

risposta

4

Ok, questa non è una buona risposta, ma ecco come ho raggiunto lo stesso compito. Una volta che ho un nome utente dal API faccio la seguente espressione regolare sulla fonte del loro profilo:

$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!"; 
} 

Come ho detto prima questo è super hacky ma l'API attualmente non fornisce un valore isVerified. Fino a quando lo fanno uso questa espressione regolare. Cerca "isVerified": parte vera della struttura JSON a cui fai riferimento. (esempio: https://instagram.com/taylorswift)

Abbiamo anche aggiunto un controllo aggiuntivo in cui se il tag meta contenuto ha "account ufficiale" in esso, si assume che sia ufficiale. (esempio: https://instagram.com/3doorsdown) Abbiamo aggiunto questo controllo perché Instagram ha iniziato a creare account verificati nel 2014 e ci sono alcune celebrità che non hanno ancora ricevuto un badge verificato. Dovrebbe raccogliere alcuni pezzi, ma potrebbe anche portare dei falsi positivi.

NOTA: questa soluzione si interromperà se Instagram modificherà mai la struttura JSON o i metatag sulle loro pagine, quindi utilizzarla a proprio rischio. Avevamo bisogno solo di uno script per controllare una piccola quantità di nomi utente per i badge verificati e mi è venuto in mente questo rapido. La soluzione migliore sarà quando aggiornano le loro API.