2011-03-16 46 views
1

這FQL是從已經運行了現在幾天一個應用程序,並已進行了全面測試:爲什麼此FQL不爲某些用戶返回個人資料照片?

SELECT src_big FROM photo WHERE aid IN (SELECT aid FROM album WHERE owner = {uid} AND type = 'profile') 

我使用的是從ActionScript橋接JS API和{uid}一部分置換爲任何UID對應於在朋友瀏覽器中點擊的列表項目。問題是大多數時候這個查詢工作正常,很好,大圖像被返回(雖然通常不是一組完整的匹配配置文件圖像),但在某些情況下,查詢根本不返回任何內容,只是一個空數組。檢查用戶的個人資料圖像專輯確認有大量圖像可供選擇。任何人都知道這可能是爲什麼?

回答

1

可能是因爲該用戶的隱私設置已設置,因此您無法訪問其個人資料圖片。

+0

是的,這也是我的第一個猜測,但後來我想到了這一點:當用戶通過我的應用程序登錄,授予必要的權限來加載他的朋友的照片時,應用程序代表該用戶行事。在與登錄用戶相同的訪問級別上有效運行。如果此用戶可以訪問朋友的個人資料照片,則不會讓這些照片在facebook.com上顯示給用戶,而不會通過應用訪問這些照片。 – 2011-03-17 06:40:53

+0

哪裏隱私設置順便說一下?我嘗試通過自己的設置來查看是否有任何東西可以讓我拒絕API訪問,但沒有任何東西真的讓它自行消失。 – 2011-03-17 06:50:48

+0

在隱私設置(http://www.facebook.com/settings/?tab=privacy)中,應用程序和網站鏈接位於左下角。 「通過朋友訪問的信息」部分。僅僅因爲他們可以看到它並不意味着你的應用可以。 – 2011-03-17 10:31:55

1

這是因爲某些字段對公衆可見,而其他字段需要權限,所以如果根據user表的建議導航到users.getInfo方法。你會發現公共字段列表,你可以查詢任何用戶:

  • UID
  • FIRST_NAME
  • middle_name
  • 姓氏
  • 區域
  • CURRENT_LOCATION
  • 從屬關係(地區類型o NLY)
  • pic_square
  • PROFILE_URL

現在查詢album表將最有可能的任何回報,如果用戶沒有授予您的權限,但它是值得嘗試以下操作:

SELECT pic_big FROM user WHERE uid={uid} 

如果它不起作用,那麼你可能需要堅持從上面的列表pic_square

而且這是值得大家注意的所有pic字段可能爲空:

pic_big的URL來最大規模的 資料圖片對用戶是 查詢。該圖像可以具有200px的最大寬度和600px的最大高度 。 此URL可能爲空白

這適用於user表中提及的所有圖片。

重要提示:
它總是一個很好的做法,有一個後備圖像(一般圖像),只要沒有返回圖像使用!

相關問題