Note importante : Depuis la mi-2018, le processus d'obtention de jetons d'API twitter est devenu beaucoup plus bureaucratique. Cela m'a pris plus de une semaine de travail pour recevoir un ensemble de jetons d'API, et ceci pour un projet open source pour vous, les gars et les filles avec plus d'un million d'euros. 1,2 million d'installations sur Packagist et 1,6k étoiles sur Github, ce qui devrait théoriquement être plus prioritaire.
Si vous êtes chargé de travailler avec l'API twitter pour votre travail, vous devez tenir compte de ce temps d'attente potentiellement extrêmement long. Pensez également à d'autres médias sociaux comme Facebook ou Instagram et proposez ces options, car le processus de récupération de leurs jetons est instantané.
Vous voulez donc utiliser l'API Twitter v1.1 ?
Note : les fichiers pour ces derniers sont sur GitHub .
Version 1.0 sera bientôt déprécié et les demandes non autorisées ne seront pas acceptées. Voici donc un article pour vous aider à le faire, ainsi qu'une classe PHP pour vous faciliter la vie.
1. Créez un compte de développeur : Mettez en place un compte de développeur sur Twitter
Vous devez vous rendre sur le site officiel des développeurs de Twitter et créer un compte de développeur. Il s'agit d'un gratuit et étape nécessaire pour effectuer des demandes pour l'API v1.1.
2. Créez une application : Créez une application sur le site du développeur Twitter
Quoi ? Vous pensiez que vous pouviez faire des demandes non authentifiées ? Pas avec l'API v1.1 de Twitter. Vous devez vous rendre sur http://dev.twitter.com/apps et cliquez sur le bouton "Créer une application".
![Enter image description here]()
Sur cette page, remplissez les détails que vous voulez. Pour moi, cela n'avait pas d'importance, car je voulais juste faire un tas de demandes de blocage pour me débarrasser des followers spam. Le fait est que vous allez vous faire un ensemble de clés uniques à utiliser pour votre application.
Ainsi, l'intérêt de créer une application est de se donner (et de donner à Twitter) un jeu de clés. Ces clés 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'information ici sur ce à quoi servent ces jetons.
3. Créer des jetons d'accès : Vous en aurez besoin pour réussir vos demandes
OAuth demande quelques jetons. Vous devez donc les faire générer pour vous.
![Enter image description here]()
Cliquez sur "créer mon jeton d'accès" en bas. Une fois que vous aurez fait défiler la page jusqu'en bas, vous verrez apparaître des clés nouvellement générées. Vous devez récupérer les quatre clés précédemment étiquetées sur cette page pour vos appels API, alors notez-les quelque part.
4. Modifier le niveau d'accès : Vous ne voulez pas de lecture seule, n'est-ce pas ?
Si vous voulez faire un usage décent de cette API, vous devrez modifier vos paramètres en lecture et écriture si vous faites autre chose que de la récupération de données standard en utilisant l'API. GET demandes.
![Enter image description here]()
Choisissez l'onglet "Paramètres" situé en haut de la page.
![Enter image description here]()
Donnez à votre application un accès en lecture/écriture, et cliquez sur "Update" en bas.
Vous pouvez en savoir plus sur le modèle de permission des applications que Twitter utilise ici.
5. Écrire du code pour accéder à l'API : J'ai fait le plus gros du travail pour vous
J'ai combiné le code ci-dessus, avec quelques modifications et changements, dans une classe PHP afin qu'il soit très simple de faire les requêtes dont vous avez besoin.
Cela utilise OAuth et le API Twitter v1.1 et la classe que j'ai créée et 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 l'URL à laquelle vous voulez faire une demande. Twitter a son Documentation de l'API pour vous aider à choisir l'URL et aussi le type de requête (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 passer. Si nous utilisons l'URL "blocks" 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 défini ce que vous voulez faire avec l'API, il est temps d'effectuer la requête proprement dite.
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
Et pour un POST demande, c'est tout !
Pour un GET demande, 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 requête 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 le crédit à @lackovic10 et @rivers ! J'espère que quelqu'un le trouvera utile ; je sais que je l'ai fait (je l'ai utilisé pour le blocage en masse dans une boucle).
Par ailleurs, pour les utilisateurs de Windows qui rencontrent des problèmes avec les certificats SSL, consultez la page ce poste . Cette bibliothèque utilise cURL sous le capot et vous devez donc vous assurer que vos certificats cURL sont probablement configurés. Google est aussi votre ami.
99 votes
Je tuerais pour avoir la réponse à cette question. Leur documentation est horriblement mauvaise.
0 votes
Je suis nouveau dans l'API Twitter et j'ai un peu de mal avec elle. Je me suis retrouvé à utiliser du code déprécié.
0 votes
Jetez un coup d'œil à aamirafridi.com/twitter/
0 votes
@Mark Merci Mark !! C'était facile ! Cela n'a pas fonctionné pour moi au départ. J'utilise WAMP. J'ai dû faire un changement à mon php.ini dans mon répertoire Apache selon ce fil de discussion : stackoverflow.com/questions/5444249/
0 votes
Je pense que cela fonctionne toujours en novembre 2014 et qu'ils changent leurs APIs ?
1 votes
Je viens d'écrire une solution sans CURL ou toute autre bibliothèque supplémentaire : stackoverflow.com/questions/17049821/
0 votes
@RauliRajande - votre extrait est EXACTEMENT ce que je recherchais - un bricolage à partir de zéro. La réponse acceptée par Jimbo est assez impressionnante aussi, après que j'ai mis à jour mes certitudes. Merci à tous les deux.