Codice PHP:
///////////////////////////////////////////
// BATCH UPLOADER FOTO FACEBOOK////////////
// GENERATORE SMILEY CODES E PARSER CODICI/
///////////////////////////////////////////
// COPYRIGHT 2013, @ALESSANDRO MAURIZIO////
///////////////////////////////////////////
// RICHIESTE FACEBOOK SDK
require 'facebook/src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'NONVELODICO',
'secret' => 'NONVELODICONONVELODICO',
'fileUpload' => true
));
// OTTIENE I DATI DALLA FOTO INVIATA E SPEZZATA
// TEMPORANEAMENTE DATI FIXED, POI VARIABILI
$orizzontale = 11;
$verticale = 9;
$cartella = 6785334;
// CONFIGURA TOKEN E API
$token = "NONVELODICONONVELODICONONVELODICONONVELODICONONVELODICONONVELODICO";
$facebook->setAccessToken($token);
$me = $facebook->api('/NONVELODICO');
//Abilita supporto upload (per sicurezza)
$facebook->setFileUploadSupport(true);
//Crea un album con richiesta API
$album_details = array(
'message'=> 'test album',
'name'=> 'Test Album'
);
$create_album = $facebook->api('/NONVELODICO/albums', 'post', $album_details);
//Ottiene l'ID dell'album appena creato
$album_uid = $create_album['id'];
echo "ID ALBUM: ".$album_uid."<br><br>";
$IDAlbum = $album_uid;
//////////////// CREAZIONE ALBUM FUNZIONANTE ////////////////
//////// INVIO BATCH FOTO /////////
/* VERSIONE CURL DIRETTO - BATCH */
// MAX 5 MINUTI DI SCRIPT
set_time_limit(300);
// CONFIGURA RICHIESTA
// TEST: SOLO UNA RIGA (11 FILES)
$batched_request =
'[
{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=0", "attached_files":"file0-0"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=1", "attached_files":"file0-1"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=2", "attached_files":"file0-2"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=3", "attached_files":"file0-3"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=4", "attached_files":"file0-4"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=5", "attached_files":"file0-5"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=6", "attached_files":"file0-6"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=7", "attached_files":"file0-7"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=8", "attached_files":"file0-8"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=9", "attached_files":"file0-9"
},'.'{ "method":"POST", "relative_url":"'.$album_uid.'/photos",'.'"body" : "message=10", "attached_files":"file0-10"
}]';
// CODIFICA MESSAGGIO DA LANCIARE
$urlCode = urlencode($batched_request);
// CREA ARRAY DA INVIARE
$immaginiarray = array(
);
// FUNZIONE PUSH ARRAY ASSOCIATIVA
function array_push_assoc($array, $key, $value){
$array[$key] = $value;
return $array;
}
// WHILE AGGIUNGE ELEMENTI ALL'ARRAY
$countcolonne = 0;
//while ($countcolonne <= 11) { // ORIGINALE A 11 COLONNE, RIDOTTO PER TESTING
while ($countcolonne <= 0) {
if ($countcolonne >= 10) {
$counter = 0;
while ($counter <= 10) {
if ($counter >= 10) {
$immaginiarray = array_push_assoc($immaginiarray, 'file'.$countcolonne."-".$counter, '@squares/6785334/img'.$countcolonne.'_'.$counter.'.jpg');
$counter++;
} else {
$immaginiarray = array_push_assoc($immaginiarray, 'file'.$countcolonne."-".$counter, '@squares/6785334/img'.$countcolonne.'_0'.$counter.'.jpg');
$counter++;
}
}
} else {
$counter = 0;
while ($counter <= 10) {
if ($counter >= 10) {
$immaginiarray = array_push_assoc($immaginiarray, 'file'.$countcolonne."-".$counter, '@squares/6785334/img0'.$countcolonne.'_'.$counter.'.jpg');
$counter++;
} else {
$immaginiarray = array_push_assoc($immaginiarray, 'file'.$countcolonne."-".$counter, '@squares/6785334/img0'.$countcolonne.'_0'.$counter.'.jpg');
$counter++;
}
}
}
$countcolonne++;
}
// DEBUG IMMAGINI ARRAY
var_dump($immaginiarray);
// CONFIGURA RICHIESTE CURL
$curlConfig = array(
CURLOPT_URL => "https://graph.facebook.com/?batch=$urlCode&limit=35&access_token=$token&method=post",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 3000,
CURLOPT_TIMEOUT => 3000,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_POSTFIELDS => $immaginiarray
);
// Manda CURL e restituisce risultati o errori
// PRIMO TENTATIVO
echo "<br><br>INIZIO PRIMO TENTATIVO.<br><br>";
$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
$arrayrisultati = json_decode($result, true);
curl_close($ch);
// HA FUNZIONATO? RIPROVA VARIE VOLTE FINCHE' IL RISULTATO NON E' CONFERMATO.
// SECONDO TENTATIVO
if ($arrayrisultati == NULL){
echo "<br>PRIMO TENTATIVO FALLITO. RIPROVO.<br><br>";
$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
$arrayrisultati = json_decode($result, true);
curl_close($ch);
}
// TERZO TENTATIVO
if ($arrayrisultati == NULL){
echo "<br>SECONDO TENTATIVO FALLITO. RIPROVO.<br><br>";
$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
$arrayrisultati = json_decode($result, true);
curl_close($ch);
}
// QUARTO TENTATIVO
if ($arrayrisultati == NULL){
echo "<br>TERZO TENTATIVO FALLITO. RIPROVO.<br><br>";
$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
$arrayrisultati = json_decode($result, true);
curl_close($ch);
}
// QUINTO TENTATIVO
if ($arrayrisultati == NULL){
echo "<br>QUARTO TENTATIVO FALLITO. RIPROVO.<br><br>";
$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
$arrayrisultati = json_decode($result, true);
curl_close($ch);
}
///////////////
// SE IL CODICE HA FUNZIONATO, FOTO INVIATE, PULISCO E OUTPUTTO IL CODICE FINALE
///////////////
if ($arrayrisultati != NULL){
var_dump($arrayrisultati);
// PULISCI RISULTATI E OTTIENI ID
$pulizia = 0;
while ( $pulizia < 22 ) {
$pulisci[$pulizia] = substr_replace($arrayrisultati[$pulizia]["body"], "", 0, 7);
$puliscifin[$pulizia] = substr_replace($pulisci[$pulizia], "", -46, 46);
$pulizia = $pulizia + 1;
}
echo "<br><br><br>";
echo "ID FOTO 1:".$puliscifin[0]."<br>";
echo "ID FOTO 2:".$puliscifin[1]."<br>";
echo "ID FOTO 3:".$puliscifin[2]."<br>";
echo "ID FOTO 4:".$puliscifin[3]."<br>";
echo "ID FOTO 5:".$puliscifin[4]."<br>";
echo "ID FOTO 6:".$puliscifin[5]."<br>";
echo "ID FOTO 7:".$puliscifin[6]."<br>";
echo "ID FOTO 8:".$puliscifin[7]."<br>";
echo "ID FOTO 9:".$puliscifin[8]."<br><br><br>";
echo "SMILEY FINALE:<br><br>[[".$puliscifin[0]."]][[".$puliscifin[1]."]][[".$puliscifin[2]."]][[".$puliscifin[3]."]][[".$puliscifin[4]."]][[".$puliscifin[5]."]][[".$puliscifin[6]."]][[".$puliscifin[7]."]][[".$puliscifin[8]."]][[".$puliscifin[9]."]][[".$puliscifin[10]."]]
[[".$puliscifin[11]."]][[".$puliscifin[12]."]][[".$puliscifin[13]."]][[".$puliscifin[14]."]][[".$puliscifin[15]."]][[".$puliscifin[16]."]][[".$puliscifin[17]."]][[".$puliscifin[18]."]][[".$puliscifin[19]."]][[".$puliscifin[20]."]][[".$puliscifin[21]."]]";
} else {
echo "<br><br>HO FALLITO CINQUE VOLTE. PROCESSO INTERROTTO.<br><br>";
}