2010-08-09 121 views
1

我有一些使用Facebook图形API的问题。Facebook图形API和PHP SDK问题

1)。 当我尝试上传照片时,出现以下错误消息“(#324)需要上传文件”。

$attachement = array(
          'access_token'=> (...)', 
          'name' => 'uploaded foto', 
          'source' => 'C:\Documents and Settings\Username\Desktop\1.jpg' 
        ); 

     $fb_foto = $fb->api('me/photos','POST',$attachement); 

我确定该来源是正确的。我曾经尝试过从互联网上的照片,而不是从本地电脑也。 2)。我怎样才能从Facebook上删除一个对象? (例如壁信息)。 我试过这个: $ fb-> api('/ post_id','POST',array('method'=>'delete'));

但我得到“不支持的POST请求”错误。

任何帮助,将不胜感激。

编辑:这里是我发现上传照片到Facebook的完整解决方案。你需要有PHP SDK版本2.1.1或以上

$fb = new Facebook(array(
         'appId' => ..., 
         'secret' => ..., 
         'cookie' => true, 
     )); 

$fb->setFileUploadSupport(true); 
     $attachement = array(
          'access_token'=> '...', 
          'name' => 'uploaded foto', 
          'source' => '@absolute_path_to_the_file' 
        ); 



     $fb_foto = $fb->api('me/photos','POST',$attachement); 
+0

$ attachchement包含什么? – Sebs 2010-08-09 11:03:49

+0

我已经编辑了$附件的完整详细信息。 – brpaz 2010-08-11 09:59:33

回答

1

关于你的第二个问题,我记得某处读到一个DELETE请求,而不是POST。请参阅: http://developers.facebook.com/docs/api#deleting

+0

我知道我在某处看过它。谢谢 – brpaz 2010-08-11 09:54:30

+0

这个工作适合你吗? (对照片发出DELETE请求?) – rinogo 2010-12-14 08:59:50

1

阅读the documentation

curl -F 'access_token=...' \ 
    -F '[email protected]' \ 
    -F 'message=Caption for the photo' \ 
    https://graph.facebook.com/me/photos 

source参数是如何格式化?

$fb_foto = $fb->api('me/photos','POST',array(
    'access_token' => (...) 
    , 'message'  => 'Caption' 
    , 'source'  => '@' . realpath('path/to/file') 
)); 

要删除照片,再次the documentation有你的答案:发出DELETE请求

$fb->api('/PHOTO_ID', 'DELETE'); 
+1

我试过了,但仍然得到相同的错误。我唯一的解释是因为我在本地主机工作。 Anywhay我没有任何其他问题(张贴到墙上,发表评论等)。 $ attachchement = array( 'access_token'=>(...) 'name'=>'uploaded foto', 'source'=>'@'。realpath('C:\ Documents and Settings \ Username \ Desktop \ 1.jpg') ); $ fb_foto = $ fb-> api('me/photos','POST',$ attachement); – brpaz 2010-08-11 10:24:32

+0

哦,绝对因为localhost – 2010-08-11 14:39:48

+0

不,它不是localhost。这是一个与PHP SDK的错误。我已更新到2.1.1版本并添加以下行:$ fb-> setFileUploadSupport(true); 现在一切正常。 – brpaz 2010-08-16 10:11:47

1

我使用这种方法与新的PHP SDK(2.1.1,Facebook的PHP-SDK -v2.1.1-0-g08909f3.zip)上传新照片。下面的php代码创建事件。

 
$fname="/tmp/foo.jpg"; 
$attachment = array(
     'access_token' => $facebook->getAccessToken(), 
     'name' => substr(event_name), 
     'description' => my_description, 
     'start_time' => my_start_time, 
     'link' => my_link, 
     'source'=> '@'.$fname 
     ); 
$result = $facebook->api('/me/events', 'POST', $attachment);