Facebook stream.publish与图像附件从Base64

问题描述:

我想要获得Facebook的stream.publish做墙贴,包括一些自定义文本和动态生成的图像从网站。该图像仅在Base64中可用,因为它是在发布操作启动之前由用户绘制的。 Facebook似乎不喜欢将src作为Base64字符串传入。有谁知道解决方法,或者我会*先保存图像到服务器,然后提供一个链接(我真的宁愿不这样做)。Facebook stream.publish与图像附件从Base64

您无法在JavaScript中将base64图像传递给Facebook。你需要将它发送到你的服务器,并将其转换为png/jpeg或其他东西,然后从那里上传到Facebook(这需要某种类型的user permissions)。要么,要么将其存储在服务器上,然后使用将用于JavaScript中的png/jpg的URL。

+0

这正是我所担心的。哦,它是服务器存储。谢谢 – Chris 2010-07-21 02:54:36

你可以做如下的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);