2012-03-28 69 views
1

我已經創建了Facebook應用程序。我需要用戶能夠通過該應用程序發佈圖像到我的Facebook頁面的相冊,並且我需要抓取頁面的訪問令牌。當我以頁面管理員身份登錄時,我只能獲得訪問令牌,但如果我使用其他帳戶登錄,則無法獲取頁面的訪問令牌(即使我喜歡該頁面並安裝了應用程序)。代碼如下使用Facebook API發佈圖像粉絲頁面相冊

$fanpage = 'XXXXXXXXXXXXX'; 

$pages_arr = array(
'access_token'=>$access_token, 
'fields'=>'access_token' 
); 

$page_token = $facebook->api('/'.$fanpage, 'get', $pages_arr); 
$fanpage_token = $page_token['access_token']; 

**//When logged in as admin of the page I get the token but I don't get the token if I am not //page admin** 

echo $fanpage_token; 

$file = "@".realpath("test.jpg"); 
$args = array(
    'message' => 'test', 
    'image' => $file, 
    'aid' => $album_id, 
    'no_story' => 1, 
    'access_token' => $fanpage_token // note, we use the page token here 
); 

$photo = $facebook->api("/$album_id/photos", 'post', $args); 
if(is_array($photo) && ! empty($photo['id'])) 
    echo 'Photo uploaded. Check it on Graph API Explorer. ID: ' . $photo['id']; 

我要求在App以下權限安裝

manage_notifications,user_photos,photo_upload,publish_stream,friends_photos,manage_pages 

回答

1

我認爲這是預期的行爲。 manage_pages權限允許訪問用戶管理的頁面。如果您需要其他(非管理員)用戶上傳到您的頁面,則需要在您的應用中爲該頁面存儲有效的訪問令牌。然後,使用保存的訪問令牌上傳用戶提供的圖像。

+0

但問題是訪問令牌在一段時間後過期。有沒有辦法阻止訪問令牌過期,或者我們能否獲得永不過期的訪問令牌?據我所知離線訪問現在也被棄用。 – Waqar 2012-03-29 03:36:17