2012-06-06 56 views
2

我正在開發一個應用程序以包含在我的頁面標籤中。在這個應用程序中,用戶將使用網絡攝像頭拍攝照片,並將照片發送到我的粉絲頁面中的特定相冊。access_token - 在粉絲頁面相冊中上傳照片的腳本

我在這裏找到了一個腳本:他工作得很好,但我遇到了問題,腳本使用用戶access_token上傳圖片,不需要詢問所有用戶上傳圖片的權限,因爲腳本使用我的管理員用戶發送到該頁面。

最大的問題是:用戶訪問令牌在2小時後過期,或者當我的管理員用戶未登錄時,權限offline_access被終止,我不知道我的腳本將如何工作。

我需要所有用戶都可以使用系統上傳照片,任何人都知道我可以如何工作?

這裏是在PHP腳本:

` 
require_once 'library/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => '<appid>', 
    'secret' => '<appsecret>', 
    'fileUpload' => true 
)); 
$access_token = 'access_token'; 
$params = array('access_token' => $access_token); 
$fanpage = 'page_id'; 
$album_id ='album_id'; 
$accounts = $facebook->api('/ADMIN_ACCOUNT/accounts', 'GET', $params); 

foreach($accounts['data'] as $account) { 
    if($account['id'] == $fanpage || $account['name'] == $fanpage){ 
     $fanpage_token = $account['access_token']; 
    } 
} 

$valid_files = array('image/jpeg', 'image/png', 'image/gif'); 
$img = realpath("image_path"); 

$args = array(
    'message' => 'message to write in legend', 
    'image' => '@' . $img, 
    'aid' => $album_id, 
    'no_story' => 1, 
    'access_token' => $fanpage_token 
); 

$photo = $facebook->api($album_id . '/photos', 'post', $args); 

if(is_array($photo) && !empty($photo['id'])){ 
    echo '<p><a target="_blank" href="http://www.facebook.com/photo.php?fbid='.$photo['id'].'">Click here to watch this photo on Facebook.</a></p>'; 
}` 

回答

0

您將需要通過敲擊端點請求長期訪問令牌:

https://graph.facebook.com/oauth/access_token?    
    client_id=APP_ID& 
    client_secret=APP_SECRET& 
    grant_type=fb_exchange_token& 
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

在方案4以下看看文件: http://developers.facebook.com/roadmap/offline-access-removal/

+0

Tks,訪問令牌有效期爲兩個月。 這樣就可以使腳本自動更新訪問令牌嗎?在此過期之前使用curl獲取新的訪問令牌。這可以工作嗎? –

+0

不,用戶需要經常回來以獲得擴展令牌 – Igy

+0

@Igy認真思考更好,只有當我的用戶登錄fb時纔會生成令牌,因此,無法創建腳本來續訂令牌自動 –

0

如果您使用該腳本發佈到粉絲頁面的相冊,那麼您應該得到一個號訪問令牌 - 它們不會過期。

詳細信息請參閱:https://developers.facebook.com/docs/authentication/pages/

+0

腳本需要用戶訪問才能正常工作。 –

+0

TKS @CBroe但是,腳本作爲用戶腳本在頁面中上傳,此腳本將在短時間內用於特定促銷,並使用長期過期的令牌將會正常工作。 –

相關問題