我使用oauth將facebook用戶登錄到我的應用程序。我正在使用我的FB帳戶和基本權限範圍進行測試。 Facebook文檔說,我應該可以通過基本權限獲得「圖片」,但是當我使用API訪問它時,我的帳戶沒有「圖片」屬性。雖然有名字,姓氏等等。facebook oauth,沒有基本權限的圖片
這是因爲我的帳戶沒有公開顯示?爲何會發生這種情況?我絕對有一張個人資料照片。
這裏是我的FB鏈接:http://www.facebook.com/josh.nankin
我使用oauth將facebook用戶登錄到我的應用程序。我正在使用我的FB帳戶和基本權限範圍進行測試。 Facebook文檔說,我應該可以通過基本權限獲得「圖片」,但是當我使用API訪問它時,我的帳戶沒有「圖片」屬性。雖然有名字,姓氏等等。facebook oauth,沒有基本權限的圖片
這是因爲我的帳戶沒有公開顯示?爲何會發生這種情況?我絕對有一張個人資料照片。
這裏是我的FB鏈接:http://www.facebook.com/josh.nankin
所以,還是不知道爲什麼圖形API不返回的圖片屬性,當你打在API的/我的路徑,但一旦你/我有了用戶名,
是的...我不再真正關注文檔了。這太混亂了,你會得到與FQL和OG截然不同的結果。查看返回的字段的最簡單方法是使用資源管理器https://developers.facebook。com/tools/explorer – 2012-07-31 22:14:02
要獲得更大的尺寸,您還可以使用:https://graph.facebook.com/USERNAME/picture?type=large – simoes 2013-05-17 02:19:04
您也可以使用用戶標識號而不是用戶名 – 2014-05-14 20:34:53
https://developers.facebook.com/docs/reference/api/user/:你可以得到的圖片很容易地
「picture: The URL of the user's profile pic (only returned if you explicitly specify a 'fields=picture' param)」
你可能沒有忽略用粗體標出的部分...?
這不再是這種情況,這句話不再在文檔中。 – 2014-06-06 15:13:03
最好的方法是保持基本權限並在單獨的步驟中激發圖像請求。問圖形API中這樣說:
https://graph.facebook.com/[fb_user_id]?fields=picture.type(small)
大圖:
https://graph.facebook.com/[fb_user_id]?fields=picture.type(large)
你會得到這樣的JSON響應:
{
"id": "100001XXXXXXXXX",
"picture": {
"data": {
"url": "http://profile.ak.fbcdn.net/hprofile-XXXX/41524_1000018XXX51507_XXXX3_q.jpg",
"is_silhouette": false
}
}
}
似乎不工作了:https://graph.facebook.com/914431778578699?fields=picture.type(large)返回錯誤:'需要訪問令牌來請求這個資源' – stkvtflw 2017-03-18 13:00:58
您可以直接從導出資料照片網址作爲Josh Nankin指出,從Facebook返回的基本標準OAuth信息,但有一個澄清。
你仍然可以使用該用戶的ID返回給請求的照片,例如:
https://graph.facebook.com/914431778578699/picture?type=large
相同
https://graph.facebook.com/dark.eye.1/picture?type=large
這樣,只有一個要求,必須進行,因爲您可以在將照片URL存儲在數據庫中時插入照片URL。
其實你不需要允許公共訪問來獲取個人資料圖片,因爲你可以獲得USER_ID。儘管USER_ID可以輕鬆導航到個人資料圖片。
function checkLoginState() {
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
console.log('Welcome! Fetching your information.... ');
var url = '/me?fields=id,name';
FB.api(url, function(response) {
var linkpp = 'https://graph.facebook.com/' + response.id + '/picture?type=large';
document.getElementById("id_of_link_tag").href = linkpp;
});
});
}
可以在可變linkpp改變類型到類型=小它返回一個低分辨率圖像。
var linkpp = 'https://graph.facebook.com/' + response.id + '/picture?type=small';
剛剛用另一個帳戶確認了這一點。同樣的問題也是。 – 2012-07-31 21:12:02