2011-09-29 142 views
5

我已經閱讀了很多關於此的教程/文章/問題,以及試圖在fb文檔中找到有用的東西。用圖api獲取照片

到目前爲止,我還沒有取得任何進展,所以任何輸入都將不勝感激,我只是試圖訪問我的照片列表,但我得到的只是一個空數組。

我知道我已經添加了比我需要的更多的req_perms,我只是從一個「工作教程」中複製了那些不適合我的工作,並且在閱讀了一個線程之後,我還添加了user_photo_video_tags,因爲這對於線程海報(再次,不是我)。

我已經得到的對話框,讓照片與我的應用程序分享我的照片,登錄工作沒有任何問題,訪問令牌我得到的似乎是正確的,在登錄我參觀後:

https://graph.facebook.com/me/photos?access_token=和令牌,並得到一個空數組,如果我沒有登錄或access_token沒有鏈接到我的應用程序會有一些錯誤,但我得到的是一個空數組。

在此先感謝您的任何意見。

感謝錢尼藍光我能驗證我的權限:

{ 
    "data": [ 
     { 
     "installed": 1, 
     "status_update": 1, 
     "photo_upload": 1, 
     "video_upload": 1, 
     "create_note": 1, 
     "share_item": 1, 
     "publish_stream": 1 
     } 
    ] 
} 

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
require_once 'library/facebook.php'; 

$app_id = "xxxxxxxxxxxxxxxx"; 
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 

$facebook = new Facebook(array(
    'appId' => $app_id, 
    'secret' => $app_secret, 
    'cookie' => true 
)); 

$loginLink = $facebook->getLoginUrl(array(
    'scope' => 'user_status,publish_stream,user_photos,user_photo_video_tags' 
)); 
$logOutLink = $facebook->getLogoutUrl(); 

$user = $facebook->getUser(); 

if ($user) { 
    try { 
     // User logged in, get token 
     $token = $facebook->getAccessToken(); 
     //var_dump($token); dumped successfully 
     // Get public profile info 
     $user_profile = $facebook->api('/me'); 
     //var_dump($user_profile); dumped successfully 
     $photos = $facebook->api('/me/photos?access_token=' . $token); 
     var_dump($photos); // Empty array, BAH! 
    } catch (FacebookApiException $e) { 
     $user = null; 
    } 
} 

?> 
<a href="<?php echo $loginLink; ?>">Click here to login if you aren't autoredirected</a><br /><br /><br /> 
<a href="<?php echo $loginLink; ?>">Click here to logout</a> 

回答

3

不知道這是否是問題,但嘗試。看起來你正在使用最新的PHP SDK。在你的getLoginUrl();請嘗試將「req_perms」更改爲「範圍」。

像這樣:

$loginLink = $facebook->getLoginUrl(array(
    'scope' => 'user_status,publish_stream,user_photos,user_photo_video_tags' 
)); 

您可以驗證你已經訪問https://graph.facebook.com/me/permissions/?access_token=XXXX

+0

謝謝,我還得到一個空數組,但至少我可以驗證我的權限{ 「數據」:[ { 「安裝」:1, 「status_update」:1, 「photo_upload」:1, 「video_upload」:1, 「create_note」:1, 「share_item」:1, 「publish_stream」:1 } ] } –

+0

你好像缺少user_photos許可。這可能是你得到一個空數組的原因。嘗試刪除應用程序並重新授權。 –

2

測試一些其他權限,我發現Facebook是不是更新的權限了USB Key後授權正確的權限,即使在註銷應用程序時,當我查看Chaney Blu獲得的圖形權限鏈接時,再次登錄並接受新權限也沒有任何變化。

我使用該鏈接驗證來自Facebook的圖表api頁面http://developers.facebook.com/docs/reference/api/的令牌,並注意到該令牌有權訪問user_photos,但不能訪問我的令牌。

進入我的Facebook設置並刪除應用程序讓facebook在我下次登錄應用程序時更新我的​​權限。

感謝Chaney Blu讓我走上正軌。如果我有名譽,會投你一票。

+1

這是一些代表的投票:) – CuddleBunny

+0

要強制重新加載權限(並授權他們),您可以將'&auth_type = rerequest'添加到login_url的末尾。 對於生產,應用程序只允許使用一次,但在開發過程中,您應該可以根據需要隨時進行此操作。 –