Remarque importante: à la mi-2018, le processus d'obtention des jetons d'API Twitter est devenu beaucoup plus bureaucratique. Il m'a fallu plus d' une semaine de travail pour obtenir un ensemble de jetons d'API, et ceci pour un projet open source pour vous les gars et les filles avec plus de 1,2 million d'installations sur Packagist et 1,6 k étoiles sur Github, qui devrait théoriquement être une priorité plus élevée .
Si vous devez travailler avec l'API Twitter pour votre travail, vous devez tenir compte de ce temps d'attente potentiellement extrêmement long. Considérez également d'autres avenues de médias sociaux comme Facebook ou Instagram et fournissez ces options, car le processus de récupération de leurs jetons est instantané.
Vous souhaitez donc utiliser l'API Twitter v1.1?
Remarque: les fichiers pour ceux-ci sont sur GitHub .
La version 1.0 sera bientôt obsolète et les demandes non autorisées ne seront pas autorisées. Alors, voici un article pour vous aider à faire exactement cela, avec une classe PHP pour vous faciliter la vie.
1. Créez un compte développeur: créez- vous un compte développeur sur Twitter
Vous devez visiter le site officiel des développeurs Twitter et créer un compte développeur. Il s'agit d'une étape gratuite et nécessaire pour faire des demandes pour l'API v1.1.
2. Créer une application: créer une application sur le site des développeurs Twitter
Quoi? Vous pensiez pouvoir faire des demandes non authentifiées? Pas avec l'API v1.1 de Twitter. Vous devez visiter http://dev.twitter.com/apps et cliquer sur le bouton "Créer une application".
Sur cette page, remplissez les détails que vous souhaitez. Pour moi, cela n'avait pas d'importance, parce que je voulais juste faire une charge de demandes de blocage pour me débarrasser des adeptes du spam. Le fait est que vous allez vous procurer un ensemble de clés uniques à utiliser pour votre application.
Donc, le but de créer une application est de vous donner (et Twitter) un jeu de clés. Ceux-ci sont:
- La clé du consommateur
- Le secret du consommateur
- Le jeton d'accès
- Le secret du jeton d'accès
Il y a un peu d'informations ici sur la raison d'être de ces jetons.
3. Créez des jetons d'accès : vous en aurez besoin pour faire des demandes réussies
OAuth demande quelques jetons. Vous devez donc les générer pour vous.
Cliquez sur "créer mon jeton d'accès" en bas. Ensuite, une fois que vous faites défiler vers le bas à nouveau, vous aurez des clés nouvellement générées. Vous devez récupérer les quatre clés précédemment étiquetées de cette page pour vos appels API, alors notez-les quelque part.
4. Modifier le niveau d'accès : vous ne voulez pas en lecture seule, n'est-ce pas?
Si vous souhaitez utiliser décemment cette API, vous devrez modifier vos paramètres en lecture et écriture si vous faites autre chose que la récupération de données standard à l'aide de requêtes GET .
Choisissez l'onglet "Paramètres" en haut de la page.
Donnez à votre application un accès en lecture / écriture et appuyez sur "Mettre à jour" en bas.
Vous pouvez en savoir plus sur le modèle d'autorisation des applications que Twitter utilise ici.
5. Écrivez du code pour accéder à l'API : j'en ai fait la plupart pour vous
J'ai combiné le code ci-dessus, avec quelques modifications et changements, dans une classe PHP, il est donc très simple de faire les demandes dont vous avez besoin.
Cela utilise OAuth et l' API Twitter v1.1 , et la classe que j'ai créée que vous pouvez trouver ci-dessous.
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"
);
Assurez-vous de mettre les clés que vous avez obtenues de votre application ci-dessus dans leurs espaces respectifs.
Ensuite, vous devez choisir une URL à laquelle vous souhaitez faire une demande. Twitter a sa documentation API pour vous aider à choisir quelle URL et aussi le type de demande (POST ou 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';
Dans la documentation, chaque URL indique ce que vous pouvez lui transmettre. Si nous utilisons l'URL "blocs" comme celle ci-dessus, je peux passer les paramètres POST suivants:
/** POST fields required by the URL above. See relevant docs as above **/
$postfields = array(
'screen_name' => 'usernameToBlock',
'skip_status' => '1'
);
Maintenant que vous avez configuré ce que vous voulez faire avec l'API, il est temps de faire la demande réelle.
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
Et pour une demande POST , c'est tout!
Pour une demande GET , c'est un peu différent. Voici un exemple:
/** 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();
Exemple de code final : pour une simple demande GET pour une liste de mes followers.
$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();
J'ai mis ces fichiers sur GitHub avec crédit à @ laquovic10 et @rivers! J'espère que quelqu'un le trouve utile; Je sais que je l'ai fait (je l'ai utilisé pour le blocage en bloc dans une boucle).
En outre, pour ceux sous Windows qui ont des problèmes avec les certificats SSL, consultez cet article . Cette bibliothèque utilise cURL sous le capot, vous devez donc vous assurer que vos certificats cURL sont probablement configurés. Google est aussi votre ami.