2011-07-08 114 views
4

我有一個iPhone應用程序,它將照片發佈到facebook用戶的相冊中,我希望看到我的應用程序發佈的照片​​。Facebook可以離線訪問相冊嗎?

我的應用程序具有offline_access &流Facebook的權限,但我不存儲Facebook user_id或任何有關用戶。我只有facebook應用程序密鑰&的祕密。

facebook api是否允許我獲取與我的應用程序連接的用戶列表,更重要的是可以獲取我的應用程序發佈的照片​​?

任何在PHP或Objective C中的指導都會有所幫助。

回答

4

如果您將用戶的albumID存儲在數據庫中,這是最容易的,因爲您試圖在當前未使用該應用程序時引用用戶存儲的照片。

就像循環播放相冊ID列表一樣簡單,然後撥打/$albumID/photos來獲取相片ID。

請記住你除了offline_access之外還需要user_photos權限。

+0

欲瞭解更多信息:https://developers.facebook.com/blog/post/498/ –

+0

謝謝,你有抓住所有的照片從album_id任何代碼示例(或photo_id)並保存到本地存儲? – aporat

+0

使用'user_photos'權限,您可以查詢用戶相冊的列表。如果您的應用的相冊不存在,則可以使用圖形API創建相冊,然後通過進行相應的Graph API調用將照片上傳到其中。 –

1

Facebook沒有API查看誰已連接到您的應用或檢索其訪問令牌。你需要做的是更新你的iPhone應用程序,這樣你就可以在服務器上存儲這些訪問令牌和用戶ID。然後,您可以遍歷這些令牌並使用它們來檢索用戶照片。

1

如果您申請了offline_access權限,則需要保存您的用戶的access_token才能代表他們訪問Facebook。

0

這裏的PHP腳本我已經寫信給搶照片,並將其上傳到Dropbox的(使用Dropbox的PHP SDK):

它實際上是更簡單的話,我最初的想象。不需要用戶標識。

$app_id = 'xxxxxx'; 
$app_secret = 'xxxxx'; 
$photoId = 'xxxxx'; 
$access_token = 'xxxxx'; 

try { 
    $facebook = new Facebook(array(
     'appId' => $app_id, 
     'secret' => $app_secret, 
    )); 
} catch (Exception $e) { 

} 

try { 
    $attachment = array('access_token' => $access_token); 
    $photo = $facebook->api($photoId, 'GET', $attachment); 
} catch (Exception $e) { 

} 

$dropbox = new DropboxUploader('xxxxxxx', 'xxxxxxxx'); 
$tmpfname = '/tmp/' . $photoId . '.png'; 

$fp = fopen($tmpfname,'x'); 
fwrite($fp, file_get_contents($photo['source'])); 
fclose($fp); 

$dropbox->upload($tmpfname, 'photos/'); 

unlink($tmpfname); 

exit;