Facebook SDK 3.1 - 分享图片

时间:2012-10-15 13:54:59

标签: ios6 facebook-ios-sdk

我要在我的ios应用程序中集成FB SDK 3.1。

我在墙上成功分享了一张图片,但是我无法设置“via [appname]”(默认情况下“通过ios”)。我已经在我的info.plist文件中输入了appid值。

我也无法为ios5进行共享工作(它回复了错误400)。

以下是我使用的代码:

- (void)viewDidLoad{

appDelegate = [[UIApplication sharedApplication]delegate];
if (!appDelegate.session.isOpen) {
    appDelegate.session = [[FBSession alloc] init];

    if (appDelegate.session.state == FBSessionStateCreatedTokenLoaded) {
        [appDelegate.session openWithCompletionHandler:^(FBSession *session,
                                                         FBSessionState status,
                                                         NSError *error) {
        }];
    }
}

当我必须分享时,我称之为:

- (IBAction)fbShare:(id)sender {
if (appDelegate.session.isOpen) {

    BOOL displayedNativeDialog = [FBNativeDialogs presentShareDialogModallyFrom:self
                                                                initialText:textView.text
                                                                      image:img
                                                                        url:nil
                                                                    handler:nil];
    if (!displayedNativeDialog) {
        [self performPublishAction:^{

        [FBRequestConnection startForUploadPhoto:img
                               completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                               }];
    }];}

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

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

- (void) performPublishAction:(void (^)(void)) action {
if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound) {
    [FBSession.activeSession reauthorizeWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                               defaultAudience:FBSessionDefaultAudienceFriends
                                             completionHandler:^(FBSession *session, NSError *error) {
                                                 if (!error) {
                                                     action();
                                                 }
                                                 else{
                                                 }

                                             }];
} else {
    action();
}}

任何提示?

非常感谢,

埃里卡

1 个答案:

答案 0 :(得分:1)

  

我在墙上成功分享了一张图片,但是我无法设置“via [appname]”(默认情况下“通过ios”)。我已经在我的info.plist文件中输入了appid值。

很可能您没有设置Facebook应用名称。我建议您在https://developers.facebook.com/apps管理面板上查看