【问题标题】:How to post to Facebook without showing dialog?如何在不显示对话框的情况下发布到 Facebook?
【发布时间】:2012-01-03 14:10:21
【问题描述】:

我正在做一个可以向 Facebook 发送文本的阅读器应用程序。但我在另一个页面完成了对 Facebook 的登录。我有一个名为“textpostingbtn”的按钮和一个保存文本的文本视图。我需要做的是,当用户点击按钮时,它会将文本发布到 Facebook,而不显示登录对话框。我对按钮进行了一些验证,因此仅当用户登录时才启用该按钮。link that i used in login purpose

编辑:

- (IBAction)postGradesTapped:(id)sender {
    //_posting = YES;
    // If we're not logged in, log in first...
    if (![_session isConnected]) {
        self.loginDialog = nil;
        _loginDialog = [[FBLoginDialog alloc] init];    
        [_loginDialog show];

        _logoutButton.hidden = YES;
    }
    // If we have a session and a name, post to the wall!
    //else if (_facebookName != nil) {
    //[self postToWall];
    //}
    // Otherwise, we don't have a name yet, just wait for that to come through.

}

- (IBAction)logoutButtonTapped:(id)sender {
    [_session logout];
    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"FB_logged"];
    _btnFacebookmain.enabled =NO;
}


#pragma mark FBSessionDelegate methods

- (void)session:(FBSession*)session didLogin:(FBUID)uid {
    [self getFacebookName];

}

- (void)session:(FBSession*)session willLogout:(FBUID)uid {
    _logoutButton.hidden = YES;
    _facebookName = nil;
}

#pragma mark Get Facebook Name Helper

- (void)getFacebookName {
    NSString* fql = [NSString stringWithFormat:
                     @"select uid,name from user where uid == %lld", _session.uid];
    NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"query"];
    [[FBRequest requestWithDelegate:self] call:@"facebook.fql.query" params:params];
}

#pragma mark FBRequestDelegate methods

- (void)request:(FBRequest*)request didLoad:(id)result {
    if ([request.method isEqualToString:@"facebook.fql.query"]) {
        NSArray* users = result;
        NSDictionary* user = [users objectAtIndex:0];
        NSString* name = [user objectForKey:@"name"];
        self.facebookName = name;       
        _logoutButton.hidden = NO;
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FB_logged"];
        [_logoutButton setTitle:[NSString stringWithFormat:@"Facebook: Logout as %@", name] forState:UIControlStateNormal];
        /*if (_posting) {
         [self postToWall];
         _posting = NO;
         }*/
    }
}

【问题讨论】:

    标签: iphone ios facebook


    【解决方案1】:

    为此,您只需登录 FB 一次。 将访问令牌保存在您的 NSUserDefaults 中。 然后,当您想在 FB 上分享时,只需访问您的 NSUserDefaults 并获取访问令牌并使用该令牌进行分享。

    用于在 NSUserDefaults 中存储访问令牌

          facebook = [[Facebook alloc] initWithAppId:@"YOUR_APP_ID" andDelegate:self];
          NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    

    }

    以下是几个可以指导您的链接

    https://developers.facebook.com/docs/mobile/ios/build/

    http://coffeeshopped.com/2011/01/saving-sessions-with-the-facebook-ios-sdk

    关于SO的讨论

    Saving Facebook access_token in NSUserDefaults on iOS

    How to get a Facebook access token on iOS

    要发布将转到您的按钮按下的代码将是这样的:-

            FBStreamDialog* dialog = [[[FBStreamDialog alloc] init] autorelease];
            dialog.userMessagePrompt = @"Enter your message:";
           dialog.attachment = [NSString stringWithFormat:@"I Love iOS"];
            [dialog show];
    

    这里是参考链接。

    http://www.raywenderlich.com/77/how-to-post-on-facebook-with-your-iphone-app

    【讨论】:

    • 请查看我的编辑问题,这是我登录 facebook.code 的方式,
    • ,如何从此代码中获取令牌以及如何在另一个视图控制器的我的帖子按钮中设置?谢谢
    • postgradetapped 是 facebook 的登录按钮
    • ,好的,谢谢您的回复,我必须在按钮发布文本中输入的 facebook 发布代码是什么?
    • 更新了我的答案..希望这对现在有帮助..:P
    【解决方案2】:

    按照本教程进行操作:https://developers.facebook.com/docs/mobile/ios/build/ 如果您按照他们所说的那样执行此操作,那么您的 FB 连接对于您的应用程序来说将是全局的。使用 appDelegate,您可以从应用中的任何视图控制器发布、阅读和做任何您想做的事情

    【讨论】:

      【解决方案3】:

      你可以使用graph api,这里是教程:-https://github.com/reallylongaddress/iPhone-Facebook-Graph-API

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多