Update profilového obrázku z FB při změně

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
resigo
Člen | 20
+
0
-

Dobrý den,
chtěl jsem se zeptat, jak by se dala kontrolovat změna FB profilového obrázku. Všem vám moc děkuji. :)

Ukládání obrázku při registraci

$picture_name = $id.'_1_'.Strings::random(9, '0-9').'.jpg';

$image = Image::fromFile('https://graph.facebook.com/'.$id.'/picture/?redirect=1&width=160&height=160');
$image->save('images/upload/'.$picture_name, 100, Image::JPEG);

Potřeboval bych aby když si uživatel změní obrázek, změnil by se i na mém webu a zároveň se mu v názvu „id _ 1 _ random.jpg“ změnila 1 na 2 a u mě by se zachovaly oba obrázky.

file_get_contents se neshoduje.

if(file_get_contents('https://graph.facebook.com/'.$id.'/picture/?redirect=1&width=160&height=160') === file_get_contents('images/upload/'.$picture_name))
James_Scott
Člen | 55
+
+1
-

Co třeba porovnávat md5 checksum u puvodniho/noveho obrazku?
S ulozenim obrazku si i ukladat checksum, ale ta kontrola by se pak musela provadet periodicky(cron).

Majkl578
Moderator | 1364
+
+3
-

file_get_contents se neshoduje.

Samozřejmě, když ten obrázek resizuješ.

Můžeš použít:

  1. md5/sha1/crc před resize a kontrolovat (nevýhodou je stahování obrázku i když ho nepotřebuješ);
  2. ETag (ten funguje v API, tj. při získávání URL obrázku přidáním ?redirect=false do URL);
  3. Asi by se dala použít i hlavička Last-Modified;
  4. Real-Time API updates, to je ale řádově složitější na implementaci.

Dotaz každopádně nijak nesouvisí s Nette.

resigo
Člen | 20
+
0
-

Díky, vyřešil jsem to md5. Omlouvám se, že mi vypadlo nette z dotazu.