2013-06-28 39 views
1

我想上传一张照片粉丝页面Feed,但我不能,我读过一次发送它,必须是POST FORM !这是正确的?Facebook错误:“创建formpost数据失败”上传照片到粉丝页面

的index.php

<html> 
<head> 
    <title>Index Page Facebook</title> 
</head> 
<body> 
    <?php 
     require('config.php'); 


     if($user){ 
      $_SESSION['user_id'] = $user; 
?> 
     <form action="facebook3.php" method="post" accept-charset="utf-8"> 
      Message <input type="text" name="message"> <br> 
      Photo: <input type="file" name="pictureFile"> 
       <input type="submit" value="Postar"> 
     </form> 
<?php  
      exit();   
     }else{ 
    ?> 
      <a href="<?php $facebook->getLoginUrl(array('scope' => $fbPermissions, 'redirect_uri' => $homeurl)); ?>">Login Facebook</a>; 
    <?php  
     } 
    ?> 
</body> 
</html> 

fb.php

<?php 
include_once("config.php"); 
//destroy facebook session if user clicks reset 


if($_POST) 
{ 
    //$loginUrl = $facebook->getLoginUrl(array('scope' => 'manage_pages'));  
    //$loginUrl = $facebook->getLoginUrl(array('scope' => 'publish_stream')); 
    @include_once("config.php"); 


    //Post variables we received from user 
    $userPhoto = $_FILES["pictureFile"]["tmp_name"]; 
    $userMessage = $_POST["message"]; 

    if(strlen($userMessage)<1) 
    { 
     //message is empty 
     $userMessage = ''; 
    } 

     //HTTP POST request to PAGE_ID/photos with the publish_stream 
     $post_url = '/228433913910358/feed'; 
     //posts message on page statues 

     $msg_body = array(
     'source'=>'@'.$userPhoto, 
     'message' => $userMessage 
     ); 

    if ($user) { 
     try { 
      $postResult = $facebook->api($post_url, 'post', $msg_body); 
     } catch (FacebookApiException $e) { 
     echo $e->getMessage(); 
     } 
    }else{ 
    header("Location: index.php "); 
    } 

    //Show sucess message 
    if($user && !empty($postResult)) 
    { 
     echo '<html><head><title>Message Posted</title><link href="style.css" rel="stylesheet" type="text/css" /></head><body>'; 
     echo '<div id="fbpageform" class="pageform" align="center">'; 
     echo '<h1>Your message is posted on your facebook wall.</h1>'; 
     echo '<a class="button" href="'.$homeurl.'">Back to Main Page</a> <a target="_blank" class="button" href="http://www.facebook.com/'.$fbuser.'">Visit Your Page</a>'; 
     echo '</div>'; 
     echo '</body></html>'; 
    } 
} 

?> 

所以,我已经尝试过通过邮寄,直接写路径$照片,但错误依然存在!

未能创造formpost数据

+0

调用Twitter的,当我面临同样的问题API库。在这种情况下是库中的一行,它执行php curl_exec指令触发该消息。很可能您调用的Facebook API库使用相同的指令,并且出于同样的原因失败 – Pablo

回答

0

我知道这是一个迟到的答复,但对于其他人可能属于这里......

我看到4分的东西,可能会出现问题:
1.你需要以确保$ userPhoto包含有效的服务器路径到您的照片。
2.我使用“图像”而不是“源”来发布图像。 (但也许都是工作) 3.由于您上传的照片,它应该上传到/ /照片,而不是/ /饲料(或使用/照片相册)
4.你需要确保你的$ facebook config将fileUpload设置为true或确保写入行:
$ facebook-> setFileUploadSupport(true);在调用api之前。

因此,这里的代码可能看起来像什么(未测试的代码)

<?php 
include_once("config.php"); 
//destroy facebook session if user clicks reset 

if($_POST) 
{ 
    //$loginUrl = $facebook->getLoginUrl(array('scope' => 'manage_pages'));  
    //$loginUrl = $facebook->getLoginUrl(array('scope' => 'publish_stream')); 
    @include_once("config.php"); 

    $facebook->setFileUploadSupport(true); 


//Post variables we received from user 
$userPhoto = $_FILES["pictureFile"]["tmp_name"]; 
$userMessage = $_POST["message"]; 

if(strlen($userMessage)<1) 
{ 
    //message is empty 
    $userMessage = ''; 
} 

    //HTTP POST request to PAGE_ID/photos with the publish_stream 
    $post_url = '/228433913910358/photos'; 
    //posts message on page statues 

    $msg_body = array(
    'image'=>'@'.$userPhoto, 
    'message' => $userMessage 
    ); 

if ($user) { 
    try { 
     $postResult = $facebook->api($post_url, 'post', $msg_body); 
    } catch (FacebookApiException $e) { 
    echo $e->getMessage(); 
    } 
}else{ 
header("Location: index.php "); 
} 

//Show sucess message 
if($user && !empty($postResult)) 
{ 
    echo '<html><head><title>Message Posted</title><link href="style.css" rel="stylesheet" type="text/css" /></head><body>'; 
    echo '<div id="fbpageform" class="pageform" align="center">'; 
    echo '<h1>Your message is posted on your facebook wall.</h1>'; 
    echo '<a class="button" href="'.$homeurl.'">Back to Main Page</a> <a target="_blank" class="button" href="http://www.facebook.com/'.$fbuser.'">Visit Your Page</a>'; 
    echo '</div>'; 
    echo '</body></html>'; 
} 
} 

?> 
0

here,该页面介绍了Facebook上的很多关于图像后