2012-09-23 7 views
0

Je suis en train de faire un gros bit.ly plus courte qui lit une liste de liens à partir d'un fichier txt sur les sorties liens raccourciesen vrac bit.ly créateur

Le problème est que je ne sais pas comment faire ceci et bit.ly a une restriction d'api si vous faites des liens trop rapidement. J'ai trouvé que si vous faites 5 liens par seconde ça devrait marcher. Comment puis-je raccourcir 1200 liaisons à la fois?

<?php 

    $sites = array( 
    'http://api.bit.ly/shorten?version=2.0.1&login=bitlyexample&apiKey=R_8b726077f3d5c6029700c29e529395d3&format=text&longUrl=http://link2.com', 
    'http://api.bit.ly/shorten?version=2.0.1&login=bitlyexample&apiKey=R_8b726077f3d5c6029700c29e529395d3&format=text&longUrl=http://link1.com', 
    ); 

    foreach ($sites as $site) { 
     $shortened_url = file_get_contents($site); 
     if($shortened_url) 
      echo "$shortened_url <br/>"; 
    } 
    die(); 
    ?> 
+1

[ "L'API bitly ne supporte pas raccourcissant plus d'une URL longue avec un seul appel API Cependant, jusqu'à 15 URL peuvent être traitées dans un appel d'API en utilisant les points de terminaison "/ v3/lookup", "/ v3/expand" et "/ v3/clicks".] (Http://code.google.com/p/bitly-api/wiki/ApiBestPractices # Batch_Processing). Ce serait une grande amélioration, non? Assurez-vous qu'il y a un délai suffisant entre chaque requête, sinon c'est classé comme un abus de l'API. –

Répondre

0

Utilisez sleep() après 5 liens dormir 5 secondes (ou le nombre de secondes les états API):

<?php 

$sites = array( 
'http://api.bit.ly/shorten?version=2.0.1&login=bitlyexample&apiKey=R_8b726077f3d5c6029700c29e529395d3&format=text&longUrl=http://link2.com', 
'http://api.bit.ly/shorten?version=2.0.1&login=bitlyexample&apiKey=R_8b726077f3d5c6029700c29e529395d3&format=text&longUrl=http://link1.com', 
); 
$i = 0; 
foreach ($sites as $site) { 
    $shortened_url = file_get_contents($site); 
    if($shortened_url) { 
     echo "$shortened_url <br/>"; 
    } 
    $i++; 
    if($i%5 == 0){ 
     sleep(5); 
    } 
} 
die(); 
?>