2013-04-04 53 views
0

好的使用时,我的Facebook标签的应用程序不能发表照片页的墙壁,这里就是我面对:由用户而不是管理

我做了一个应用程序为我的Facebook粉丝页面,我的应用程序是一个Facebook页面标签应用程序。分别

http://developers.facebook.com/docs/appsonfacebook/pagetabs/

,进入:

我已经按照添加应用程序到我的Facebook页面

http://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&next=YOUR_URL

,并选择哪些页面被添加到。

当我这样做了,我用我的Facebook页面管理用户做到了。

我已经允许manage_pagespublish_streampublish_actions权限。

这里是我的代码:

$objFacebook = App_Utils_Facebook::getFacebook(); 

    $user_id = $objFacebook->getUser(); 
    $objFacebook->setFileUploadSupport(true); 


    if(isset($_REQUEST['pageId'])){ 
     $arrPriv = $objFacebook->api("/".$_REQUEST['pageId']."/", array('fields'=>'access_token')); 
     $link = 'http://link/here/'.$this->objAnunt->id; 
    } 


    $privacy = json_encode(array('value'=>'SELF')); 

    if(isset($arrPriv['access_token'])){ 
     $access_token = $arrPriv['access_token']; 
    }else{ 
     $access_token = $objFacebook->api("/".$_REQUEST['pageId']."/", array('fields'=>'access_token')); 
    } 


    if($user_id){ 
     try{ 
      $ret=$objFacebook->api("/".$arrPriv['id']."/photos",'POST',array(
        'source'=>'@link/to/pic.jpg', 
        'message'=>$strTitle.' 

           For more details click here '.$link, 
        'access_token'=>$access_token, 
        'privacy'=>$privacy 
               ) 
      ); 
      unlink('link/to/pic.jpg'); 
     }catch(FacebookApiException $e) { 
      echo $e; 
     } 
    }else{ 
      $permissions = $objFacebook->api("/me/permissions"); 
      if(!array_key_exists('publish_stream', $permissions['data'][0]) || 
      !array_key_exists('manage_pages', $permissions['data'][0])) { 
       // We don't have one of the permissions 
       // Alert the admin or ask for the permission! 
       header("Location: " . $objFacebook->getLoginUrl(array("scope" => "publish_stream, manage_pages"))); 
      } 
    } 

所以我重复自己,我想允许普通用户访问我的应用程序和页面本身上发布它自己的墙。

我可以做到吗?如果没有,还有其他选择。

谢谢你的时间和耐心帮助我弄清楚这一点!

回答

1

据我所知,您不需要manage_pages权限发布到页面。请参阅this documentation

使用有效用户access_token/{page_id}/feed进行API调用应足以发布到页面的订阅源。


正如评论所说,Facebook的可能不允许普通用户将照片上传到网页的专辑。您需要从该页面的管理员处获得access_token(确保授予manage_pages权限),检索页面访问令牌并以此方式上传照片。

该页面访问令牌应该对于用户访问令牌的生命是有益的。

+0

好吧不!使用任何其他用户并提供该用户access_token,我无法发布到/ {page_id} /照片。 – Gabriel 2013-04-04 13:12:52

+0

啊,照片。在这种情况下,Facebook似乎不允许普通用户上传照片到页面的相册中。您需要使用通过具有“manage_pages”权限的用户检索的页面访问令牌进行“/ {page_id]/photos”调用。 – 2013-04-04 13:16:12

+0

好吧,我已经设法得到access_token,并确实与管理员的access_token,它发布在正确的位置。但是,问题仍然存在,我是否可以将此access_token存储起来供以后使用,这样我的应用程序就可以运行起来了?谢谢! – Gabriel 2013-04-08 13:52:47

相关问题