Limite de requêtes sur l'API Twitter [Fermé]

Signaler
Messages postés
77
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
10 avril 2019
-
Bonjour,

Je crée se Topics car, après plusieurs recherches sur différents forum il m'a été impossible de trouver une solution ou une alternative à mon problème qui ne doit pas concerné que moi d'ailleurs.

J'ai un projet dans lequel je fais usage de l'API Rest de Twitter afin de récupérer la liste des Followers de différents comptes.
Grâce à la documentation mise à disposition par Twitter ( https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/get-followers-list ), j'ai très vite compris que Twitter avait mis en place une limite quand au nombre de requête sur leur API, en l'occurrence pour ma fonction c'est entre 15 et 30 requêtes maximum / fenêtre /15 minutes .

Le problème est le suivant :
Les retours de l'API pour la requête que j'utilise sont au nombre maximum de 200 Followers / page de résultat. Voila que le compte à analyser possède disons 10 000 Followers, vous comprenez que la limite de Twitter m'empêche donc de récupérer la liste complète des Followers avec l'usage d'une seule fonction.
C'est pourquoi étant novice dans l'usage des API, je fais appel à l'expérience de la communauté pour obtenir de l'aide.
Le but est de pouvoir avec l'aide d'une fonction Php de récupérer les Followers de différents comptes Twitter soit sans limite de modération (si le moyen existe) ou bien de pouvoir récupérer une liste complète pour un compte sans recevoir le message suivant de l'api Twitter : "Rate limit exceeded"

Je met le code php ci-dessous pour comprendre le type de requête dont j'ai besoin.

N'hésitez pas à me demander des précisions si besoin.

Je vous remercie d'avance pour votre aide.

<?php
ini_set('display_errors', 1);
require_once('TwitterAPIExchange.php');

$settings = array(
'oauth_access_token' => "MY_OAUTH_ACCESS_TOKEN",
'oauth_access_token_secret' => "MY_OAUTH_ACCESS_TOKEN_SECRET",
'consumer_key' => "MY_CONSUMER_KEY",
'consumer_secret' => "MY_CONSUMER_SECRET"
);

$url = "https://api.twitter.com/1.1/followers/list.json";
 
$requestMethod = "GET";

$screen_name="TARGET_SCRENN_NAME";
$cursor=-1;/* the first page*/
 
$getfield = '?screen_name='.$screen_name.'&count=200&cursor='.$cursor;
 
$twitter = new TwitterAPIExchange($settings);

while ($cursor!=0) {/*curseur=0 quand on est à la derniére page*/

    $string = json_decode($twitter->setGetfield($getfield)
            ->buildOauth($url, $requestMethod)
            ->performRequest(),$assoc = TRUE);

    if($string["errors"][0]["message"] != "") {
        echo "<h3>Sorry, there was a problem.</h3><p>Twitter returned the following error message:</p><p><em>".$string['errors'][0]["message"]."</em></p>";exit();
    }

    foreach($string as $items) {
        $followers = $items[0]['screen_name'];
        echo $followers;
    }
    $cursor = $string['next_cursor'];
    echo "le cursor a la valeur suivante:".$cursor;
}

?>

PS: je suis encore en train de me faire la main donc je suis pas sur du fonctionnement parfait de ce code.