-2

我正嘗試使用php將圖像上傳至臉書。但現在我得到這個錯誤「Uncaught OAuthException:(#324)需要上傳文件」。無法將圖像上傳至臉書

$app_id = "257711244318488"; 
$app_secret = "dc4b279079e4eafdfgdfgdfgf6e5b9ef37fb48402"; 
$facebook = new Facebook(array(
     'appId' => $app_id, 
     'secret' => $app_secret, 
     'cookie' => true 
     )); 
$fbcheck= $facebook->getUser(); 

if(is_null($fbcheck) or !$fbcheck or $fbcheck==0) 
    { 
    header("Location:{$facebook->getLoginUrl(array('scope' => 'user_status,publish_stream,user_photos'))}"); 
    exit; 
    } 
if($_SERVER['REQUEST_METHOD'] =='POST'){ 
    //$img = realpath($_FILES["pic"]["tmp_name"]); 
    $facebook->setFileUploadSupport("http://" . $_SERVER['SERVER_NAME']); 
    $photo = $facebook->api('/me/photos', 'POST', 
    array(
      'source' => $urlParser->fbpostpic($input['ik']), 
      'message' => 'This photo was uploaded via www.Picslanda.com' 
    ) 
    ); 

      echo '<p><a target="_blank" href="http://www.facebook.com/photo.php?fbid='.$photo['id'].'">Click here to watch this photo on Facebook.</a></p>'; 
} 

$attachment = array(
    'message' => 'Hello friends ', 
    'name' => "My Name", 
    'caption' => "My caption", 
    'link' => "www.site.com", 
    'description' => 'Description.', 
    'picture' => "url", 
    'actions' => array(array(
     'name' => 'Get Search', 
     'link' => 'http://www.google.com' 
     )) 
     ); 
    $result = $facebook->api(
    '/me/feed/', 
    'post', 
    $attachment 
    ); 
+2

你或許應該產生一個新的app_secret。 – 2012-04-03 18:04:08

+0

對不起,我沒有得到你。這個app_secrete有什麼問題?請解釋 – 2012-04-03 18:06:06

+1

你在這裏發佈它,所以現在任何人都可以改變你的所有應用程序設置 此外,設置'消息'參數是明確反對Facebook政策 – Igy 2012-04-03 20:09:57

回答

0

您需要將photo_upload添加到您要求的範圍上傳圖像。

$facebook->getLoginUrl(array('scope' => 'user_status,publish_stream,user_photos,photo_upload')) 

此外,app_secret應該是祕密的,所以其發佈在互聯網上可能不是一個好主意,因爲它可以讓任何人上傳照片下的應用程序的名稱。

+0

感謝您的重播,但現在Iam得到此錯誤「Uncaught OAuthException: (#324)需要上傳文件「。請幫助我 – 2012-04-03 18:29:50

+0

Iam對圖像路徑部分陣列有些困惑( 'source'=>'http://www.mysite,com/picture.png', 'message'=>'msg' )。請榨取來源。這是對的嗎 ? – 2012-04-03 18:37:15

+0

'source'應該是文件所在的文件系統路徑(最好是絕對路徑),而不是URL。例如,如果文件位於'/ tmp'中,'/ tmp/picture.png'將會是一條好路徑。 – 2012-04-03 18:38:44

0
// Upload a photo to a user’s profile 
// Your app needs photo_upload permission for this to work 
$facebook->setFileUploadSupport(true); 

$img = '/tmp/mypic.png'; 

$photo = $facebook->api('/me/photos', 'POST', 
         array('source' => '@' . $img, 
           'message' => 'Photo uploaded via the PHP SDK!' 
         )); 

檢查的詳細信息,問題可能是你沒有'source'=> '@' . filepath@。當我離開它時,我得到你的324 error

不幸的是,我得到一個未捕獲Oauth Exception #1當我把它。