如何在Facebook上的iPhone应用程序中共享我的页面内容?

时间:2013-01-09 10:49:37

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

我在我的iPhone应用程序屏幕上提供了一个facebook共享选项,需要在用户的Facebook个人资料上分享一些图像和URL。我知道有几个第三方框架,如ShareKit和其他功能,如facebook sdk for iOS,但这是我可以这样的最好的方式,我需要获得股票数量的股票按钮,直到现在如图所示以下

enter image description here

并且点击时应该重定向到身份验证。 并且应该与iOS5及更高版本兼容,希望我的问题很明确。

提前致谢

1 个答案:

答案 0 :(得分:0)

通过研究解决了自己的问题

我使用Facebook Graph API,因为我的应用程序需要iOS4 +的支持,如果适用于iOS6则会很简单,因为iOS6具有Facebook集成并且只需要几行代码实现它。  导入的Graph APi个文件并添加了以下代码:

@synthesize facebook;

//login with facebook
- (IBAction) facebookButtonPressed {
    if (!facebook || ![facebook isSessionValid]) {
        self.facebook = [[[Facebook alloc] init] autorelease];
        NSArray *perms = [NSArray arrayWithObjects: @"read_stream", @"create_note", nil];
        [facebook authorize:FACEBOOK_API_KEY permissions:perms delegate:self];
    }
    else {
        [self fbDidLogin];
    }
}

//upload image once you're logged in
-(void) fbDidLogin {
    [self fbUploadImage];
}

- (void) fbUploadImage
{
    NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    resultImage, @"picture",
                                    nil];
    [facebook requestWithMethodName: @"photos.upload" 
                          andParams: params
                      andHttpMethod: @"POST" 
                        andDelegate: self]; 

    self.currentAlertView = [[[UIAlertView alloc]
                             initWithTitle:NSLocalizedString(@"Facebook", @"")  
                             message:NSLocalizedString(@"Uploading to Facebook.", @"")  
                             delegate:self 
                             cancelButtonTitle:nil
                             otherButtonTitles: nil] autorelease];

    [self.currentAlertView show];
}

//facebook error
- (void)request:(FBRequest*)request didFailWithError:(NSError*)error
{

    [self.currentAlertView dismissWithClickedButtonIndex:0 animated:YES];
    self.currentAlertView = nil;

    UIAlertView *myAlert = [[UIAlertView alloc]
                            initWithTitle:NSLocalizedString(@"Error", @"")  
                            message:NSLocalizedString(@"Facebook error message", @"")
                            delegate:self 
                            cancelButtonTitle:nil
                            otherButtonTitles:@"OK", nil];
    [myAlert show];
    [myAlert release];
}

//facebook success
- (void)request:(FBRequest*)request didLoad:(id)result
{
    [self.currentAlertView dismissWithClickedButtonIndex:0 animated:YES];
    self.currentAlertView = nil;

    UIAlertView *myAlert = [[UIAlertView alloc]
                            initWithTitle:NSLocalizedString(@"Facebook", @"") 
                            message:NSLocalizedString(@"Uploaded to Facebook message", @"")
                            delegate:self 
                            cancelButtonTitle:nil
                            otherButtonTitles:@"OK", nil];
    [myAlert show];
    [myAlert release];
}

要获取Facebook中特定网址的份额,  使用

http://graph.facebook.com/?id=url

但这会完全返回所有喜欢,分享和帖子的数量,所以最好找一些替代方案。

希望这会有所帮助 感谢