FB从应用程序上传照片并将其发布到用户的墙上

时间:2011-03-14 10:53:52

标签: php facebook facebook-graph-api

我对Facebook API有疑问。我已经创建了一个应用程序“截图提交”,从提交截图的概念来看,场景是:

  1. 用户允许我申请后。
  2. 用户将使用表单选择要在应用程序上传的文件,然后提交。
  3. 我想将所选文件(图片/照片)上传到他/她的相册(从应用程序自动生成)并将文件(图片/照片)发布到他/她的墙上。

    $photo_details = array('message'=>$_REQUEST['arttitle'],'source'=> '@' . realpath($_FILES[file]tmp_name]));
    
    $facebook->api('/me/photos','POST',$photo_details);
    
  4. 以上代码会将照片上传到自动生成的相册,并返回如下数组:

    Array([id]=1234567890)
    

    现在,如何使用php.sdk和图形api将上传的文件(图像/照片)发布到他/她的墙上。

    任何帮助将不胜感激。感谢。

2 个答案:

答案 0 :(得分:4)

首先获得publish_stream的扩展许可。然后,以下代码将有助于将照片上传到墙上

$attachment = array(
     'message' => 'The message that you want to display with picture',
     'name' =>'Your Application Name',
     'caption' => "Caption Under the picture",
     'link' => 'http://apps.facebook.com/yourapplication/',
     'description' => 'Some description with picture about picture or your application',
     'picture' => 'http://www.yoursite.com/somefolder/images/'.$Picturetoupload,
     'method'=>'stream.publish',
     'actions' => array(
                     array(
                        'name' => 'Your Application Name',
                        'link' => 'http://apps.facebook.com/Yourapplicationlink/'
                     )
                  )
     );
$uid=$fbme['id'];  // id of the user 
$result = $facebook->api('/'.$uid.'/feed/','post',$attachment);

答案 1 :(得分:0)

上传照片后,您将获得“照片的object_id”作为回报。

使用“object_attachment ='object_id of the photo'在Facebook墙上发帖”

curl -F \ "access_token=..." \ -F "message=blah blah...." -F "object_attachment=object_id of the photo" \ "https://graph.facebook.com/me/feed

http://developers.facebook.com/docs/reference/api/user/帖子部分中的更多信息。

object_attachment:用户相册中现有图片的Facebook ID,用作缩略图图像。用户必须是照片的所有者,并且照片不能成为邮件附件的一部分。