2011-12-13 69 views
0

我有Phonegap的 Facebook插件在我的Android應用程序內完美工作。這個插件使用Facebook的客戶端Javascript流程。不過,我想從服務器端上傳照片到FB,而不是客戶端,因爲這樣更有效。在服務器端使用Phonegap的Facebook訪問令牌

是否可以在服務器端使用由客戶端生成的Facebook訪問令牌? (順便說一下,我的Facebook的PHP SDK可以在獨立的網頁上完美工作。)

我得到一個"(#200) Permissions Error"試圖把它關閉。

如果客戶端令牌不能在服務器上使用,還有其他建議嗎?我不知道從Phonegap應用程序生成服務器端Facebook令牌的方法。

編輯: 看來,你確實可以使用一個客戶端的Facebook令牌在服務器上。升級到最新的Facebook PHP SDK很簡單,並且使用$facebook->setAccessToken()函數以及Javascript發送的令牌。

回答

0

訪問令牌通過客戶端或服務器有效。在facebook上,它是一回事:通過HTTP發送請求。

如果您無法上傳照片,請檢查您是否具有適合您應用程序的用戶權限。

如果你正在試圖找出圖形API調用你所需要的,一個好的開始是JavaScript控制檯: https://developers.facebook.com/tools/console/

在這裏,您可以在什麼調用,以讀取fromt正在作出的JavaScript看到他api,或者做一個飼料故事或上傳。您將使用服務器端代碼使用相同的圖形URL和變量。

+0

感謝塑料鱘! –

0

是的,您可以在服務器端使用客戶端令牌。實際上,當用戶登錄Facebook時,fb在Cookie中創建訪問令牌,您可以在客戶端以及服務器上訪問該訪問令牌,並且在用戶註銷時,cookie被銷燬並且訪問令牌變得無效。

並上傳照片至Facebook,我用下面的代碼:

// $的朋友是朋友id數組被標記的照片

// $ x和$ y是位置標籤。

for($i=0;$i<sizeof($friends);$i++) 
{ 
$tags[] = array(
     'tag_uid'=>$friends[$i], 
     'x'  => $x[$i], 
     'y'  => $y[$i], 
); 
} 



$photo_details = array(
'access_token'=>$access_token , 
    'message'=> 'Any message', 
'tags' => $tags 
); 

$file=$photo_name; //Example image file 

$photo_details['image'] = '@' . realpath($file); 

$upload_photo = $facebook->api('/me/photos', 'post', $photo_details); 
相關問題