Php FB开发-将照片上传到用户';s剖面图
你能告诉我我做错了什么吗。我使用PHP。尝试将照片上载到用户配置文件中。。我获得了权限,它就可以工作了。但是上传不起作用,我尝试了很多方法。那么我做错了什么Php FB开发-将照片上传到用户';s剖面图,php,facebook,facebook-graph-api,upload,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Upload,Facebook Php Sdk,你能告诉我我做错了什么吗。我使用PHP。尝试将照片上载到用户配置文件中。。我获得了权限,它就可以工作了。但是上传不起作用,我尝试了很多方法。那么我做错了什么 <?php include_once 'facebook.php'; $facebook = new Facebook(array( 'appId' => 'ID', 'secret' => 'SECRET', 'cookie' => true,
<?php
include_once 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'ID',
'secret' => 'SECRET',
'cookie' => true,
'domain' => 'DOMAIN',
'fileUpload' => 'true'
));
$session = $facebook->getSession();
if (!$session) {
$loginUrl = $facebook->getLoginUrl(array(
'canvas' => 1,
'fbconnect' => 1,
'display' => 'page',
'req_perms' => 'user_likes, publish_stream',
'next' => 'NEXTURL'
));
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
} else{
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$token = $session['access_token'];//here I get the token from the $session array
$album_id = 'ALBUM ID'; /// what should I write here?
//upload your photo
$file= 'logo.png';
$args = array(
'message' => 'Photo from app',
);
$args[basename($file)] = '@' . realpath($file);
$ch = curl_init();
$url = 'https://graph.facebook.com/'.$album_id.'/photos?access_token='.$token;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$data = curl_exec($ch);
//returns the id of the photo you just uploaded
print_r(json_decode($data,true));
} catch(FacebookApiException $e){
echo "Error:" . print_r($e, true);
}
}
?>
必须将属性fileUpload==true添加到Facebook对象:
$facebook = new Facebook(array(
'appId' => 'ID',
'secret' => 'SECRET',
'cookie' => true,
'domain' => 'DOMAIN',
'fileUpload' => true
));
更新:
我总是使用此代码上载照片:
$photo= $facebook->api(array('method'=>'photos.upload',
'caption'=>SOME_TEXT,
'file'=>'@'.$file));
您可以尝试以下方法:
$args = array('message' => $mess,
);
$args['image'] = '@' . realpath($file.".jpeg");
$facebook->setFileUploadSupport(true);
try
{
if(!isset($_GET['a']))
{
$data = $facebook->api('/me/photos', 'post', $args);
}
// echo "<br/>Image posted. <a href=\"http://www.facebook.com/photo.php?fbid=".$data['id']."\" target=\"_blank\">Click here to view</a>. Thanks for using this application.";
}
catch(FacebookApiException $e)
{
var_dump($e);
}
$args=array('message'=>$mess,
);
$args['image']='@'。realpath($file..jpeg”);
$facebook->setFileUploadSupport(true);
尝试
{
如果(!isset($\u GET['a']))
{
$data=$facebook->api('/me/photos',post',$args);
}
//echo“
图像已发布。感谢您使用此应用程序。”;
}
捕获(FacebookApiException$e)
{
var_dump($e);
}
这是工作代码的直接摘录。试试这个
$args = array('message' => 'Photo Upload');
$args['image'] = '@' . realpath($FILE_PATH);
$data = $facebook->api("/{$album_id}/photos", 'post', $args);
注意:如果你想创建一个与应用程序名相同的新专辑名并上传到那里,那么你必须使用
$facebook->api("/me/photos", 'post', $args);
定义“不起作用”。您是否看到错误、警告、其他输出无错误。。首先,用户单击“转到应用程序”,然后授予发布流权限,然后浏览器被重定向到绝对清晰/空的php页面。你能告诉我,我应该在1)$album_id;2) $file='logo.png';你是说,它现在起作用了?那么请把问题标记为已回答。不,我的意思是它已经被添加了。。你能告诉我,我应该在1)$album_id;2) $file='logo.png';我更新了我的答案。有了这个代码,这些照片就会被放入名为“APP_NAME photos”的相册中。我认为,$file是正确的。致命错误:未捕获卷曲异常:26:无法打开第622行/home/tychetec/public_html/app/facebook.php中抛出的文件“”,现在它显示了我再次编辑的此错误。是否用$file变量名替换了我的$img变量。错误消息如下所示。