以下是我的脚本,我想用它来更新我的脸书粉丝页面上的状态,但它的工作方式是上传的图片无法在Facebook粉丝页面的图库中查看,请看这个链接({{3}它详细截图我的脚本究竟发生了什么,以及我想从我的脚本做什么/想要什么。请告诉我我的剧本有什么问题,我应该怎么做?
<?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>
答案 0 :(得分: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>