2010-07-17 81 views
3

我想要獲得Facebook的stream.publish做牆貼,包括一些自定義文本和動態生成的圖像從網站。該圖像僅在Base64中可用,因爲它是在發佈操作啓動之前由用戶繪製的。 Facebook似乎不喜歡將src作爲Base64字符串傳入。有誰知道解決方法,或者我會被迫先保存圖像到服務器,然後提供一個鏈接(我真的寧願不這樣做)。Facebook stream.publish與圖像附件從Base64

回答

3

您無法在JavaScript中將base64圖像傳遞給Facebook。你需要將它發送到你的服務器,並將其轉換爲png/jpeg或其他東西,然後從那裏上傳到Facebook(這需要某種類型的user permissions)。要麼,要麼將其存儲在服務器上,然後使用將用於JavaScript中的png/jpg的URL。

+0

這正是我所擔心的。哦,它是服務器存儲。謝謝 – Chris 2010-07-21 02:54:36

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);