2012-04-20 4 views
2

以下は私のfacebookファンページのステータスを更新するのに使っていますが、アップロードされた画像をfacebookのギャラリーで見ることができないようにしていますファンページはこのリンク(http://radiations3.com/damn.jpg)を参照してください。私のスクリプトで何が起こっているのか、私のスクリプトから何をやりたいのですか?親身になって私のスクリプトに何が間違っているのか教えてください。代わりに何をすべきですか?PHP SCRIPT画像をその説明と共にあわせてアップロードする必要があります

<?php 

require 'src/facebook.php'; 

$app_id = "332267477347"; 
$app_secret = "xxxxxxxx"; 

$facebook = new Facebook(array(
'appId' => $app_id, 
'secret' => $app_secret, 
'cookie' => true, 
'fileUpload' => true, 

)); 

$facebook->setFileUploadSupport(true); 


$user = $facebook->getUser(); 
//echo $user; 

if(($facebook->getUser())==0) 
{ 
header("Location:{$facebook->getLoginUrl(array('scope' => 'photo_upload,user_status,publish_stream,user_photos,manage_pages'))}"); 
exit; 
} 
else { 
$accounts_list = $facebook->api('/me/accounts'); 
echo "i am connected"; 
} 
    $valid_files = array('image/jpeg', 'image/png', 'image/gif'); 


//to get the page access token to post as a page 
foreach($accounts_list['data'] as $account){ 
     if($account['id'] == 194458563914948){  // my page id =123456789 
     $access_token = $account['access_token']; 
     echo "<p>Page -- Access Token: $access_token</p>"; 
     } 
    } 

//posting to the page wall 

if (isset($_FILES) && !empty($_FILES)) 
{ 
$folder = "pak/".$_FILES['pic']['name']; 
$fold = 'http://snowdrop.com.pk/fb/'.$folder; 
echo $fold."<br>"; 
if(move_uploaded_file($_FILES['pic']['tmp_name'], $folder)) 
{ 
#Upload photo here 
    $img = realpath($_FILES["pic"]["tmp_name"]); 
$attachment = array('message' => $_POST['textfield'], 
          'picture' => $fold, 
           'access_token' => $access_token, 


       ); 
$status = $facebook->api("/194458563914948/feed", 'post', $attachment); 

echo $status; 
var_dump($status); 

} 
else{ 
    echo 'Only jpg, png and gif image types are supported!'; 

} 
} 
?> 
<body> 
<!-- Form for uploading the photo --> 
<div class="main"> 
    <p>Select a photo to upload on Facebook Fan Page</p> 
    <form method="post" action="" enctype="multipart/form-data"> 
    <p>Select the image: <input type="file" name="pic" /> 
    <br /> 
    <label>Description 
    <input type="text" name="textfield" id="textfield" /> 
    </label> 
    </p> 
    <p><input class="post_but" type="submit" value="Upload to my album" /></p> 
    </form> 
</div> 
</body> 

Detailed image of what my script is doing and what i want instead

答えて

2

あなたはアルバムIDにアップロードする必要が探している効果を得るために。下のコードでは、アップロードするアルバムIDを追加します。


$status = $facebook->api("/Album_ID/photos", 'post', $attachment); 

<?php 

require 'src/facebook.php'; 

$app_id = "332267477347"; 
$app_secret = "xxxxxxxx"; 

$facebook = new Facebook(array(
'appId' => $app_id, 
'secret' => $app_secret, 
'cookie' => true, 
'fileUpload' => true, 

)); 

$facebook->setFileUploadSupport(true); 


$user = $facebook->getUser(); 
//echo $user; 

if(($facebook->getUser())==0) 
{ 
header("Location:{$facebook->getLoginUrl(array('scope' => 'photo_upload,user_status,publish_stream,user_photos,manage_pages'))}"); 
exit; 
} 
else { 
$accounts_list = $facebook->api('/me/accounts'); 
echo "i am connected"; 
} 
    $valid_files = array('image/jpeg', 'image/png', 'image/gif'); 


//to get the page access token to post as a page 
foreach($accounts_list['data'] as $account){ 
     if($account['id'] == 194458563914948){  // my page id =123456789 
     $access_token = $account['access_token']; 
     echo "<p>Page -- Access Token: $access_token</p>"; 
     } 
    } 

//posting to the page wall 

if (isset($_FILES) && !empty($_FILES)) 
{ 
$folder = "pak/".$_FILES['pic']['name']; 
$fold = 'http://snowdrop.com.pk/fb/'.$folder; 
echo $fold."<br>"; 
if(move_uploaded_file($_FILES['pic']['tmp_name'], $folder)) 
{ 
#Upload photo here 
    $img = realpath($_FILES["pic"]["tmp_name"]); 
$attachment = array('message' => $_POST['textfield'], 
          'source' => $fold, 
           'access_token' => $access_token, 


       ); 
$status = $facebook->api("/Album_ID/photos", 'post', $attachment); 

echo $status; 
var_dump($status); 

} 
else{ 
    echo 'Only jpg, png and gif image types are supported!'; 

} 
} 
?> 
<body> 
<!-- Form for uploading the photo --> 
<div class="main"> 
    <p>Select a photo to upload on Facebook Fan Page</p> 
    <form method="post" action="" enctype="multipart/form-data"> 
    <p>Select the image: <input type="file" name="pic" /> 
    <br /> 
    <label>Description 
    <input type="text" name="textfield" id="textfield" /> 
    </label> 
    </p> 
    <p><input class="post_but" type="submit" value="Upload to my album" /></p> 
    </form> 
</div> 
</body> 
+1

どのように私はpublish_streamとmanage_pages権限で/写真をPAGE_IDするHTTP POSTリクエストを発行することができます。私はこれをしましたが、($ facebook-> getUser())== 0) { header( "Location $ {facebook-> getLoginUrl(array( 'scope' => 'photo_upload、user_status、publish_stream、user_photos、 manage_pages '))}} "); exit; } –

+1

このコード行に問題があったため、問題が解決しました。 'source' => '@' $ img、そして私がそれを 'source' => '@'に変更したとき。 realpath($フォルダ)、コードは魅力的に機能しました.... –

関連する問題