Nota importante: a partire dalla metà del 2018, il processo per ottenere i token API di Twitter è diventato molto più burocratico. Mi ci è voluta più di una settimana lavorativa per ricevere un set di token API, e questo è per un progetto open source per voi ragazzi con oltre 1,2 milioni di installazioni su Packagist e 1,6k stelle su Github, che teoricamente dovrebbe essere una priorità più alta .
Se hai il compito di lavorare con l'API di twitter per il tuo lavoro, devi prendere in considerazione questo tempo di attesa potenzialmente estremamente lungo. Considera anche altre strade dei social media come Facebook o Instagram e fornisci queste opzioni, poiché il processo per recuperare i loro token è istantaneo.
Quindi vuoi usare l'API Twitter v1.1?
Nota: i file per questi sono su GitHub .
La versione 1.0 sarà presto deprecata e le richieste non autorizzate non saranno consentite. Quindi, ecco un post per aiutarti a fare proprio questo, insieme a una classe PHP per semplificarti la vita.
1. Crea un account sviluppatore: crea un account sviluppatore su Twitter
Devi visitare il sito ufficiale degli sviluppatori Twitter e registrarti per un account sviluppatore. Questo è un passaggio gratuito e necessario per effettuare richieste per l'API v1.1.
2. Crea un'applicazione: crea un'applicazione sul sito dello sviluppatore di Twitter
Che cosa? Pensavi di poter fare richieste non autenticate? Non con l'API v1.1 di Twitter. Devi visitare http://dev.twitter.com/apps e fare clic sul pulsante "Crea applicazione".
In questa pagina, inserisci i dettagli che desideri. Per me, non importava, perché volevo solo fare un sacco di richieste di blocco per sbarazzarmi dei follower di spam. Il punto è che ti procurerai un set di chiavi uniche da utilizzare per la tua applicazione.
Quindi, il punto di creare un'applicazione è quello di dare a te (e Twitter) un set di chiavi. Questi sono:
- La chiave del consumatore
- Il segreto del consumatore
- Il token di accesso
- Il token di accesso segreto
Ci sono un po 'di informazioni qui su cosa servono questi token.
3. Crea token di accesso : ti serviranno per effettuare richieste di successo
OAuth richiede alcuni token. Quindi devi averli generati per te.
Fai clic su "crea il mio token di accesso" in basso. Quindi una volta che scorri di nuovo verso il basso, avrai alcune chiavi appena generate. Devi prendere le quattro chiavi precedentemente etichettate da questa pagina per le tue chiamate API, quindi prendine nota da qualche parte.
4. Modifica livello di accesso : non vuoi sola lettura, vero?
Se vuoi fare un uso decente di questa API, dovrai modificare le tue impostazioni in Lettura e Scrittura se stai facendo qualcosa di diverso dal recupero dei dati standard usando le richieste GET .
Scegli la scheda "Impostazioni" nella parte superiore della pagina.
Concedi alla tua applicazione l'accesso in lettura / scrittura e premi "Aggiorna" in basso.
Puoi leggere ulteriori informazioni sul modello di autorizzazione delle applicazioni che Twitter utilizza qui.
5. Scrivi il codice per accedere all'API : l'ho fatto per la maggior parte
Ho combinato il codice sopra, con alcune modifiche e modifiche, in una classe PHP, quindi è davvero semplice effettuare le richieste richieste.
Questo utilizza OAuth e l' API v1.1 di Twitter e la classe che ho creato che puoi trovare di seguito.
require_once('TwitterAPIExchange.php');
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
'consumer_key' => "YOUR_CONSUMER_KEY",
'consumer_secret' => "YOUR_CONSUMER_SECRET"
);
Assicurati di mettere le chiavi che hai ottenuto dalla tua applicazione sopra nei rispettivi spazi.
Successivamente è necessario scegliere un URL a cui si desidera effettuare una richiesta. Twitter ha la sua documentazione API per aiutarti a scegliere quale URL e anche il tipo di richiesta (POST o GET).
/** URL for REST request, see: https://dev.twitter.com/docs/api/1.1/ **/
$url = 'https://api.twitter.com/1.1/blocks/create.json';
$requestMethod = 'POST';
Nella documentazione, ciascun URL indica ciò che è possibile passargli. Se stiamo usando l'URL "blocchi" come quello sopra, posso passare i seguenti parametri POST:
/** POST fields required by the URL above. See relevant docs as above **/
$postfields = array(
'screen_name' => 'usernameToBlock',
'skip_status' => '1'
);
Ora che hai impostato ciò che vuoi fare con l'API, è il momento di fare la richiesta effettiva.
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
E per un POST richiesta , questo è tutto!
Per una richiesta GET , è un po 'diverso. Ecco un esempio:
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://api.twitter.com/1.1/followers/ids.json';
$getfield = '?username=J7mbo';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Esempio di codice finale : per una semplice richiesta GET per un elenco dei miei follower.
$url = 'https://api.twitter.com/1.1/followers/list.json';
$getfield = '?username=J7mbo&skip_status=1';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Ho messo questi file su GitHub con il merito di @ lackovic10 e @rivers! Spero che qualcuno lo trovi utile; So di averlo fatto (l'ho usato per il blocco di massa in un ciclo).
Inoltre, per quelli su Windows che hanno problemi con i certificati SSL, guarda questo post . Questa libreria utilizza cURL sotto il cofano, quindi è necessario assicurarsi di aver configurato i certificati cURL probabilmente. Google è anche tuo amico.