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.
fonte
2015-05-06 16:52:51