在FB墙上分享图像

时间:2012-06-28 07:32:24

标签: iphone facebook

我的应用中有一张图片,我想在FB上分享。

现在我在iPhone上安装了FB应用程序。

我想要的是当我点击我的应用程序图像中的共享时,它应该打开FB应用程序并允许我在那里分享我的图像。

是否可以通过外部FB应用程序在我们的应用程序中共享图像?

同样的推特和链接?

解决 这是通过使用ShareKit解决的。唯一的问题是你不能直接在Twitter上发布图片。因此,您必须在服务器上传图像并将该URL传递给Twitter。 Sharekit rocks

3 个答案:

答案 0 :(得分:1)

https://github.com/ShareKit/ShareKit

尝试使用sharekit它很有用.. 按照所有步骤进行,如果有,则查询而不是回发

答案 1 :(得分:0)

答案 2 :(得分:0)

将FBConnect添加到您的项目中,并使用下面的代码在Facebook上分享捕获图像。 还要将委托FBSessionDelegate,FBDialogDelegate,FBRequestDelegate添加到.h文件中。 如果要共享本地映像,则不需要在服务器上上载映像。将uiimage对象传递给facebook params。

if (facebook == nil) {
        facebook = [[Facebook alloc] initWithAppId:@"your facebook key "];


    }   


    NSArray* permissions =  [NSArray arrayWithObjects:
                             @"publish_stream", @"offline_access", nil] ;
    //  
    [facebook authorize:permissions delegate:self];

- (BOOL) takeScreenshot
{
    UIGraphicsBeginImageContext(self.view.frame.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);



    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   viewImage,@"message",                                   
                                   nil];

    [facebook requestWithGraphPath:@"me/photos"   // or use page ID instead of 'me'
                         andParams:params
                     andHttpMethod:@"POST"
                       andDelegate:self];



    return YES;
}


#pragma mark -
#pragma mark FBSessionDelegate
/**
 * Called when the user has logged in successfully.
 */
- (void)fbDidLogin {
    isFBLogged = YES;   
    [self takeScreenshot];

    if([self takeScreenshot])
    {
        UIAlertView *alert = [[UIAlertView alloc]
                              initWithTitle: @"Image share sucessfully"
                              message: nil
                              delegate: nil
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil];
        [alert show];
        [alert release];
    }
    else
    {
        UIAlertView *alert = [[UIAlertView alloc]
                              initWithTitle: @"Image share unsucessfully"
                              message: nil
                              delegate: nil
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil];
        [alert show];
        [alert release];
    }


}