簡體   English   中英

Facebook Graph API-批量請求大圖片

[英]Facebook Graph API - Batch Request for large profile pictures

嘗試獲取所有用戶的Facebook朋友信息,這些信息可以通過批處理請求成功完成:

NSString *jsonRequest1 = @"{ \"method\": \"GET\", \"relative_url\": \"me/friends?fields=name,picture\" }";
NSString *jsonRequestsArray = [NSString stringWithFormat:@"[%@]", jsonRequest1];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:jsonRequestsArray forKey:@"batch"];
[facebook requestWithGraphPath:@"me" andParams:params andHttpMethod:@"POST" andDelegate:self];

個人資料圖片尺寸較小(50x50),我需要指定照片的尺寸。 我一直在看圖API文檔,而我正在努力將兩者結合在一起-這是相關的鏈接: http : //developers.facebook.com/docs/reference/api/user/

它說要在請求中添加以下參數,但是就像我說的那樣,我不確定如何將兩者結合在一起:

picture?type=large

我敢肯定它會為特定用戶的單個請求工作,但我沒有通過批處理請求的運氣。

感謝您的幫助,它可能正盯着我!

FQL具有一些優勢,如Facebook所述

FQL(Facebook查詢語言)允許您使用SQL風格的界面來查詢由Graph API公開的數據。 它提供了Graph API中不可用的高級功能,包括將多個查詢批量處理到一個調用中。

看看來自Facebook的本教程。

https://developers.facebook.com/docs/howtos/run-fql-queries-ios-sdk/

但是我建議將Graph API與Field Expansion一起使用,這比FQL非常有用,而且更容易理解。 請注意,Graph API並不支持所有子字段。

https://developers.facebook.com/docs/reference/api/field_expansion/

祝你好運!

我認為沒有使用Graph API的簡單方法。 這個FQL查詢很容易(可以通過批處理請求傳遞):

SELECT uid, name, pic_big FROM user WHERE uid IN 
  (SELECT uid2 FROM friend WHERE uid1 = me())

如果您要查找特定尺寸的圖片,請查看新的profile_pic表。

通過在URL中添加height和width參數,可以做到這一點。 FB會嘗試為您提供符合您的寬度和高度標准的圖像。 您的批次看起來像這樣:

var batch= {
  batch: []
};

batch.batch.push({
  method: 'GET',
  relative_url: fbid + '/picture?height=400&width=400'
});

FB.api('/', 'POST', batch, function (response) {
});

像這樣的東西適合我:

{
"friends": "SELECT uid, name, pic_big FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())",
"profiles": "SELECT id, url, real_width, real_height FROM profile_pic WHERE id IN (SELECT uid FROM #friends) AND width = 300"
}

這不是完美的(要掃描兩個查詢),但它是一個請求。

基於profile_pic表文檔。

可以在FQL Explorer中測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM