简体   繁体   English

如何使用facebook SDK(iOS)从用户的facebook帐户中获取所有朋友?

[英]How to get all friends from user's facebook account using facebook SDK ( iOS )?

I got one sample code (iOS) in which I am getting all user's friends (App Id = 377766775651612) but when I using own created app id (app id 707496825976004), I am getting the list of friends who are using my app. 我得到了一个示例代码(iOS),在该示例中我得到了所有用户的朋友(应用程序ID = 377766775651612),但是当我使用自己创建的应用程序ID(应用程序ID 707496825976004)时,我得到了使用我的应用程序的朋友列表。

I want all friends 我要所有的朋友

Please help me 请帮我

Thanks in advance 提前致谢

Graph API版本2.0不可能做到这一点。

This is not possible with Graph API version 2.0. Graph API版本2.0不可能做到这一点。 Any app made after april 2014 will use 2.0. 2014年4月之后制作的任何应用都将使用2.0。 For more details, see this answer: Get facebook friends with Graph API v.2.0 有关更多详细信息,请参见以下答案: 使用Graph API v.2.0来与Facebook朋友互动

-(IBAction)permit:(id)sender
 {
   if ( [facebook isEqualToString:@"yes"])
{
     UIAlertView *Alert = [[UIAlertView alloc] initWithTitle: @"Status!"
                                                    message: @"Please Log in first"
                                                   delegate: self
                                          cancelButtonTitle: @"Ok" otherButtonTitles: nil];
    [Alert show];

        }
else
{
    [self requestPermissionAndPost];

}

}
- (void)requestPermissionAndPost {
[FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObjects:@"publish_actions",@"publish_stream",@"friends_birthday", nil]
                                      defaultAudience:FBSessionDefaultAudienceFriends
                                    completionHandler:^(FBSession *session, NSError *error) {
                                        if (!error && [FBSession.activeSession.permissions indexOfObject:@"publish_actions"] != NSNotFound) {
                                            [self getFriends];
                                        } else if (error) {
                                            if ([FBErrorUtility errorCategoryForError:error] != FBErrorCategoryUserCancelled) {
                                                NSLog(@"error %@",error);
                                            }
                                        }
                                    }];
 }

  -(void)getFriends
 {
 [self addMBProgress];
NSString *accsstoken=[[[FBSession activeSession]accessTokenData]accessToken];
NSString *abcd=[NSString stringWithFormat:@"https://graph.facebook.com/me/friends?fields=id,name,picture,birthday,location,email&access_token=%@",accsstoken];
NSURL *url = [NSURL URLWithString:abcd];
NSMutableURLRequest *request1 = [NSMutableURLRequest requestWithURL: url];
[request1 setURL:url];
[request1 setHTTPMethod:@"GET"];
NSError *error;
NSURLResponse *response;
urlDataaa = [NSURLConnection sendSynchronousRequest:request1 returningResponse:&response error:&error];
if (urlDataaa!=nil)
{
    if(NSClassFromString(@"NSJSONSerialization"))
    {
        NSError *error = nil;
        id object = [NSJSONSerialization
                     JSONObjectWithData:urlDataaa
                     options:0
                     error:&error];
        if(error)
        {

        }
        if([object isKindOfClass:[NSDictionary class]])
        {
            NSDictionary *results = object;
               NSLog(@"results..:%@",results);
            [self removeMBProgress];
           venues = [results objectForKey:@"data"];
             NSLog(@"birthday..%@",venues);
        }
    }
}
[venues enumerateObjectsUsingBlock:^(NSDictionary *dict,NSUInteger idx,BOOL *stop)
 {
     NSString *namess = [dict objectForKey:@"name"];
     [name addObject:namess];
     if ([dict objectForKey:@"birthday"]) {
         NSString *birthdayss = [dict objectForKey:@"birthday"];
         [birthday addObject:birthdayss];
     }
     else
     {
         [birthday addObject:@"No Birthday"];
     }
   }
  ];

NSString *query1 = [NSString stringWithFormat:@"DELETE from userdata"];
[[DBManager sharedDatabase]executeQuery:query1];
NSLog(@"query1:%@",query1);
userdata = [[DBManager sharedDatabase]userdata:@"select * from userdata"];
NSLog(@"userdata...%@",userdata);
for (int i=0; i<[name count]; i++)
{
    NSString *namesss =[name objectAtIndex:i];
     NSString *datesss =[birthday objectAtIndex:i];
    NSString *query1 = [NSString stringWithFormat:@"INSERT INTO userdata (name,date) VALUES (\"%@\",\"%@\")",namesss,datesss];
    NSLog(@"query1:%@",query1);
    [[DBManager sharedDatabase]executeQuery:query1];
}
userdata = [[DBManager sharedDatabase]userdata:@"select * from userdata"];
NSLog(@"userdata...%@",userdata);
[userdata addObjectsFromArray:manualdata];
[tempSearchData removeAllObjects];
[tempSearchData addObjectsFromArray:userdata];
NSLog(@"tempSearchData..%@",tempSearchData);
[friendlist reloadData];

} }

从Facebook sdk 2.0版开始,他们会像这样更改响应(获取正在使用我的应用程序的朋友的列表)。我认为从特定日期开始,其行为是这样的。如果您在开发者网站上注册了新应用程序,则可能只表现那样。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM