Facebook SDK 3.1 - 分享图片

Posted

技术标签:

【中文标题】Facebook SDK 3.1 - 分享图片【英文标题】:Facebook SDK 3.1 - share image 【发布时间】:2012-10-15 13:54:58 【问题描述】:

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

我成功在墙上分享了一张图片,但我无法设置“通过 [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();

有什么提示吗?

非常感谢,

艾丽卡

【问题讨论】:

看起来这还不可能facebook.***.com/questions/12801424/… 【参考方案1】:

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

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

【讨论】:

感谢 Nazar 的提示,但 Facebook 部分的填写方式正确!

以上是关于Facebook SDK 3.1 - 分享图片的主要内容,如果未能解决你的问题,请参考以下文章

Facebook javascript SDK 分享图片问题

Facebook iOS SDK - 分享用户照片

iOS Facebook sdk 4.0 分享图片

facebook sdk:用文字分享本地图片让我发疯

Facebook iOS SDK 3.1 - 发送私人消息

在 facebook sdk v3.13 上分享图片和文字