2013-04-04 73 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

相關問題