从iPhone应用程序分享Facebook

时间:2012-12-12 09:44:12

标签: objective-c ios facebook-graph-api facebook-ios-sdk

在我的iphone应用程序中,我正在访问我的Facebook信息并将其发送到服务器。从服务器Facebook分享应该发生 我已经在FB中创建了我的应用程序,在点击同步按钮的同时,我可以进入FB登录页面。之后请求进行身份验证

但它只是要求“基本信息”而不是公共分享等(我已将其包含在我的FB应用程序中)

 -(IBAction)fbConnect:(id)sender{

    flag = 1;
     AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];

  if (appDelegate.session.isOpen) {

    [self updateView];
  } else {
    if (appDelegate.session.state != FBSessionStateCreated) {
        appDelegate.session = [[FBSession alloc] init];
    }

    [appDelegate.session openWithCompletionHandler:^(FBSession *session,
                                                     FBSessionState status,
                                                     NSError *error) {
        [self updateView];
    }];
   }


  NSLog(@"string issss %@",string);


   }

    - (void)updateView {
      AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
      if (appDelegate.session.isOpen) {

        string = [NSString stringWithFormat:@"%@",
              appDelegate.session.accessToken];

        NSLog(@"string issss %@",string);
         NSString *urlstrng;
        if(flag == 1){
        urlstrng = [NSString stringWithFormat:@"https://graph.facebook.com/me?access_token=%@",string];
          [self dataFetching:urlstrng];
     }
     if(flag == 2){
        urlstrng = [NSString stringWithFormat:@"https://graph.facebook.com/me/friends? access_token=%@",string];
        [self dataFetching:urlstrng];
    }


     } else {

    string = [NSString stringWithFormat:@"%@",
              appDelegate.session.accessToken];
    NSString *urlstrng;
    if(flag == 1){
        urlstrng = [NSString stringWithFormat:@"https://graph.facebook.com/me?access_token=%@",string];
        [self dataFetching:urlstrng];
        }

    if(flag == 2){
        urlstrng = [NSString stringWithFormat:@"https://graph.facebook.com/me/friends?access_token=%@",string];
        [self dataFetching:urlstrng];
    }


        }
     }

      -(void)dataFetching:(NSString*)strng1{

      NSURL *url = [NSURL URLWithString:strng1];
       ProfileConnector *obj = [[ProfileConnector alloc] init];
       obj.delegate1 = self;
       [obj parsingJson:url];

        }

enter image description here

1 个答案:

答案 0 :(得分:0)

我相信您不是通过代码请求额外的项目。您可以使用openSessionWithAllowLoginUI来完成。

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {

NSArray *permissions = [[NSArray alloc] initWithObjects:
                        @"user_location",
                        @"user_birthday",
                        @"user_likes",
                        @"email",
                        nil];
return [FBSession openActiveSessionWithPermissions:permissions
                                      allowLoginUI:allowLoginUI
                                 completionHandler:^(FBSession *session,
                                                     FBSessionState state,
                                                     NSError *error) {
                                     [self sessionStateChanged:session
                                                         state:state
                                                         error:error];
                                 }];

}