2010-07-17 5 views
3

J'essaie d'obtenir le flux RSS de facebook pour faire un post de mur qui inclut du texte personnalisé et une image générée dynamiquement à partir du site. L'image est uniquement disponible en tant que base64 telle qu'elle est dessinée par l'utilisateur avant le lancement de l'action de publication. Facebook ne semble pas aimer que le src soit transmis en tant que chaîne Base64. Est-ce que quelqu'un sait une solution de contournement ou serai-je obligé d'enregistrer l'image au serveur d'abord et ensuite fournir un lien (je préfère vraiment ne pas le faire).Facebook stream.publish avec la pièce jointe de Base64

Répondre

3

Vous ne pouvez pas transmettre l'image de base64 à Facebook en JavaScript. Vous devrez l'envoyer à votre serveur et le convertir en un png/jpeg ou quelque chose et le télécharger sur Facebook à partir de là (cela nécessitera user permissions de quelque sorte). Soit cela, ou le stocker sur le serveur et ensuite utiliser l'URL qui servira un png/jpg en JavaScript.

+0

C'est ce que je craignais. Eh bien, le stockage du serveur c'est. Merci – Chris

1

Vous pouvez faire comme suivre en PHP:

function base64_to_jpeg($base64_string, $output_file) { 
    $ifp = fopen($output_file, "wb"); 
    fwrite($ifp, base64_decode($base64_string)); 
    fclose($ifp); 
    return($output_file); 
} 
$facebook->setFileUploadSupport(true); 
$image = base64_to_jpeg($your_base64_string, 'tmp.jpg'); 
$args = array('message' => 'Some message'); 
$args['image'] = '@' . realpath($image); 
$data = $facebook->api('/your_user_id/photos', 'post', $args); 
unlink($image);