2011-11-30 89 views
0

我想通过图形api发布图像到用户的墙上。 我试图发布托管在我的服务器的图像,它工作正常。但是当我尝试发布本地文件时,它会给出以下错误。 未捕获的OAuthException:(#100)图片URL格式不正确。从本地机器发布图像到Facebook用户墙

我的代码如下所示

require_once "facebook-sdk/src/facebook.php"; 

$app_id = "23432423432"; 
$app_secret = "345345353553535353534534"; 

// Init facebook api. 
$facebook = new Facebook(array(
    'appId' => $app_id, 
    'secret' => $app_secret, 
    'cookie' => true 
)); 
$urlTitle = 'my url'; 
$review = 'test desc'; 
//$picLocal = 'http://l.yimg.com/a/i/ww/met/yahoo_logo_in_061509.png'; 
$picLocal = '@' . realpath('/var/www/PixShare/a.jpg'); 
$attachment = array('message' => ' testing', 
'description' => 'Review: ' . $review, 
'access_token' => 'USER ACCESS TOKEN', 
'picture' => $picLocal 
); 
if(!($sendMessage = $facebook->api('/me/feed/','post',$attachment))){ 
$errors= error_get_last(); 
echo "Facebook publish error: ".$errors['type']; 
echo "<br />\n".$errors['message']; 

请让我知道这是可能的。

回答

1

Facebook API(或任何在线应用程序/站点)无法检索您的本地文件。所以你必须以某种方式在线存储你的文件。

或者如果你有静态IP,你可以打开你的本地主机到互联网。并通过你的IP给文件目的地。但这不是一个好的解决方案,因为你必须一直连接到互联网,并且运行apache没有任何错误。而且你的互联网连接应该是伟大的..

因此,让主机的地方:)

+0

您也可以上传照片作为多部分形式,而不是试图链接t o其网址 – Igy

+0

您是否在'picture'=> $ _FILE ['tmp_name']中传递$ _FILE ['tmp_name']请问您能否解释一下。 –

+0

我试过使用文件上传的形式,并设置'图片'=> $ _FILES [“文件”] [“tmp_name”] 也试过'源'=> $ _FILES [“文件”] [“tmp_name”] 仍然越来越同样的错误。 –

0

这个工作对我来说:

$photo = realpath("mypic.png"); 

然后用这个

$picLocal = '@' . $photo; 

如果PIC是旁边的.php文件