我在facebook graph api上工作。而且我已经获得了使用我的应用程序的用户的身份。我可以显示用户的ID和我想要做的事情。它在我的tableview的每个单元格中显示为优秀用户的FBProfilePictureView。
[[FBRequest requestForMe] startWithCompletionHandler:
^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (!error) {}
NSString* fql =
@"SELECT uid FROM user WHERE is_app_user=true AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me())";
[FBRequestConnection startWithGraphPath:@"/fql"
parameters:@{ @"q" : fql}
HTTPMethod:@"GET"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
FBRequest *fql = [FBRequest requestForGraphPath:@"fql"];
[fql.parameters setObject:@"SELECT uid,name,is_app_user FROM user WHERE is_app_user AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me())" forKey:@"q"];
[fql startWithCompletionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if (result) {
NSArray *arrayRsult = [result objectForKey:@"data"];
NSMutableArray *ids = (NSMutableArray *) [arrayRsult valueForKey:@"uid"];
NSMutableArray *names = (NSMutableArray *) [arrayRsult valueForKey:@"name"];
recentFriends = [[NSMutableArray alloc] init];
idFriends = [[NSMutableArray alloc] init];
for (NSDictionary *c in ids)
{
[idFriends addObject:c];
}
arrayLength = [recentFriends count];
NSLog(@"ids are : %@ ",idFriends);
NSLog(@"there are %i", arrayLength);
我已经完成了,开始使用以下代码在每个单元格中显示我的脸谱资料图片:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
FBProfilePictureView *prof = [[FBProfilePictureView alloc]initWithFrame:CGRectMake(5, 5, 30, 30)];
[[FBRequest requestForMe] startWithCompletionHandler:
^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (!error) {
prof.profileID = [user objectForKey:@"id"];
}
}];
[cell addSubview:prof];
}
我没有为自定义单元格使用自定义单元格和笔尖。
我不知道如何为这个表创建一个数组。
我试过这段代码cell.imageView.image = [idFriends objectAtIndex:indexPath.row];
(idFriends在.h文件中声明为__block NSMutableArray)
谢谢你的帮助!
答案 0 :(得分:3)
是的,您可以在UITableViewCell
中显示用户的个人资料图片,您可以使用Cell的默认ImageView。您可以通过以下Facebook ID
获取用户的个人资料图片。
获取个人资料使用的小/拇指图像
http://graph.facebook.com/<Friends Facebook ID>/picture?type=small
您还可以在type
,普通,大,方
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://graph.facebook.com/517267866/picture?type=small"]];
UIImage *profilePic = [UIImage imageWithData:imageData];
鉴于代码将从网址抓取图片并将UIImage
分配给您的UIImageView
如果您想了解更多详细信息,请Read Documentation here
cell.imageView.image = profilePic;
答案 1 :(得分:0)
实际上使用“http://graph.facebook.com/ / picture?type = small”来获取用户的个人资料图片甚至他们的朋友都很慢。
更好更快的方法是将FBProfilePictureView对象添加到视图及其profileID属性中,分配用户的Facebook ID。
例如: FBProfilePictureView * friendsPic;
friendsPic.profileID = @“1379925668972042”;