Facebook stream.publish与Base64的图像附件

时间:2010-07-17 20:44:21

标签: facebook image base64

我正在尝试让facebook的stream.publish发布一个墙贴,其中包含一些自定义文本和来自网站的动态生成的图像。 Image仅在作为Base64时可用,因为用户在启动发布操作之前将其绘制。 Facebook似乎不喜欢src作为Base64字符串传入。有没有人知道一种解决方法,或者我会被迫先将图像保存到服务器然后提供一个链接(我真的不想这样做)。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

您可以在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);