Bonjour à tous.

Je cherche un moyen simple, rapide et efficace de publier de simples photos (format jpeg et de même pas 1Mo) sur une page Facebook.
Cela en lançant simplement un script PHP (depuis une tâche planifiée style cron chez mon hébergeur).

Je pense pouvoir me passer de la grosse crotte d'API Facebook pour cela.
J'ai testé 2 solutions.
La première RSS Graffiti qui en plus de publier 3h30 plus tard (c'est pas très grave pour moi) semble des fois oublier carrément de publier .
Ensuite j'ai testé la solution d'envoyer des photos en pièces jointes dans un mail à l'adresse mobile.
Ca a fonctionné pendant un moment, sauf que le script lancé le matin provoquait une publication le soir toujours à la même heure (19h40) ???

Quelqu'un à un solution fiable ?
Ou quelqu'un peut-il m'expliquer ce que je fais de faux ?

Je joint en dessous mon code PHP pour la publication par mail via la pièce jointe (les emails et infos de connexions à la base ont été volontairement modifiés) :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
 
/*
Petit script qui envois l'offre à Facebook
(Lié à cron_facebook.php)
Auteur : Jean-Paul Laville (novembre 2013)
Pour le temps des framboises
Version : 1.0
*/
 
define ('DB_SERVER', 'localhost');
define ('SERVER_USER', '*****');
define ('SERVER_PASSWORD', '*****');
define ('DB_DATABASE', '*****');
 
mysql_connect(DB_SERVER, SERVER_USER, SERVER_PASSWORD);
mysql_select_db (DB_DATABASE) or die('Unable to connect to database server!');
 
?>
 
<?php
$date = date('dmY');
 
$sql1 = "SELECT * FROM Dates Where DA_Date=".$date;
$result1 = mysql_query($sql1) or die(mysql_error()); 
if ($result1) 
{
	$row1 = mysql_fetch_assoc($result1);
	$sql2 = "SELECT * FROM Offres WHERE OF_ID = '".$row1["DA_IDOF"]."'";
	$result2 = mysql_query($sql2) or die(mysql_error()); 
	if (!$result2) {
		echo("Erreur dans la lecture<br/>");
	} else
	{
		$row2 = mysql_fetch_assoc($result2);
		$messagehtml = utf8_decode($row2["OF_Desc"]);	
		$contenu = utf8_decode($row2["OF_Contenu"]);
		$pos1 = strripos($contenu, "src");
		$pos2 = strripos($contenu, "jpg");
		$jpg_url = substr($contenu,$pos1+5,($pos2-$pos1)-2);
		$jpg = substr($contenu,$pos1+54,($pos2-$pos1)-51);
		echo($jpg."<br/>");
	}
     	echo(date("d.m.Y H:i:s")." - Envoi du mail<br/>");
 
     	// Destinataire
     	$to  = '******@m.facebook.com';
 
    	// Sujet
     	$subject = 'Calendrier';
 
	$fileatt = "./offres/".$jpg;
 
        // read file into $data var
        $file = fopen($fileatt, "rb");
        $data = fread($file,  filesize( $fileatt ) );
        fclose($file);
 
        // split the file into chunks for attaching
        $content = chunk_split(base64_encode($data));
        $uid = md5(uniqid(time()));
 
	$from = "******@yahoo.fr";
        // build the headers for attachment and html
        $h  = "From: ".$from."\r\nReply-To: ".$from."\r\n";
        $h .= "MIME-Version: 1.0\r\n";
        $h .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
        $h .= "This is a multi-part message in MIME format.\r\n";
        $h .= "--".$uid."\r\n";
        $h .= "Content-type:text/html; charset=iso-8859-1\r\n";
        $h .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
        $h .= $messagehtml."\r\n\r\n";
        $h .= "--".$uid."\r\n";
        $h .= "Content-Type: ".$ftype."; name=\"".basename($fileatt)."\"\r\n";
        $h .= "Content-Transfer-Encoding: base64\r\n";
        $h .= "Content-Disposition: attachment; filename=\"".basename($fileatt)."\"\r\n\r\n";
        $h .= $content."\r\n\r\n";
        $h .= "--".$uid."--";
 
	if(mail( $to, $subject, strip_tags($messagehtml), str_replace("\r\n","\n",$h)))
	{
     		echo(date("d.m.Y H:i:s")." - Mail envoye<br/>");
     	} else
     	{
     		echo(date("d.m.Y H:i:s")." - Probleme dans l'envois du mail<br/>");
     	}
 
} else
{
	echo(date("d.m.Y H:i:s")." - Aucune offre<br/>");
}
?>
NB : Dans l'adresse "from" j'ai utilisé l'adresse mail du compte Facebook (utilisé pour l'inscription).
Et j'ai testé en m'envoyant un mail ("to" à mon adresse), et c'était bon.