繁体   English   中英

Facebook iOS SDK 3.5模式提要对话框在iPhone中加载为空

[英]Facebook iOS SDK 3.5 modal feed dialog loads empty in iPhone

我使用此代码来呈现共享对话框:

if (![[FBSession activeSession] isOpen]) {[self login]; return;}

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       @"name", @"name",
                                       @"caption", @"caption",
                                       @"description", @"description",
                                       @"http://cnn.com", @"link",
                                       @"http://cnn.com/.png", @"picture",
                                       nil];

  [FBWebDialogs presentFeedDialogModallyWithSession:nil
                                           parameters:params
                                              handler:
     ^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
         if (error) {
             NSLog(@"Error publishing story.");
         } else {
             if (result == FBWebDialogResultDialogNotCompleted) {
                 NSLog(@"User canceled story publishing (clicked the 'x' icon)");
             } else {
                 // Handle the publish feed callback
                 NSLog(@"Handle the publish feed callback");
             }
         }
     }];

我已经在Info.plist中添加了正确的条目(根据sdk文档要求):

在此输入图像描述

以及处理facebook重定向的AppDelegate方法:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    // attempt to extract a token from the url
    return [FBAppCall handleOpenURL:url
                  sourceApplication:sourceApplication
                    fallbackHandler:^(FBAppCall *call) {
                        NSLog(@"In fallback handler");
                    }];
}

-(void)applicationWillTerminate:(UIApplication *)application{

    [FBSession.activeSession close];

}

我还添加了iOS Facebook 3.5.1 SDK所需的框架:

在此输入图像描述

它给出了空对话框 (在真实设备和模拟器上),加载指示器永远旋转:

在此输入图像描述

日志等中没有显示错误......我可以轻松地将其解除(使用正确的处理程序日志)。

我认为FBSession已经启动并正确打开(我可以通过重定向到Safari成功授权并返回应用程序 - 这让我觉得重定向工作正常)。

为什么会这样? 我错过了什么? 而顺便说一句:为什么没有错误日志?

这是非常令人沮丧的,因为我之前已多次实现Facebook集成,但在这个应用程序中,我想尝试最新的SDK,其广告为:'变得前所未有的简单'。

您是否尝试将activeSession设置为Feed对话框的参数?:

//...
[FBWebDialogs presentFeedDialogModallyWithSession:[FBSession activeSession]
                                       parameters:params
                                          handler:
^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
//...

好的,然后检查您是否有权发布,如果没有,请询​​问:

if([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound){
   [FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                         defaultAudience:FBSessionDefaultAudienceEveryone
                                       completionHandler:
                                       ^(FBSession *session, NSError *error) {

                                        if (!error) {
                                            //Here call your method to publish again so you have granted the active session has publish permissions.
                                        }
             }];

我没有使用网络订阅源对话框,请告诉我它是否适合您。

尝试ShareKit并按照此处的安装说明操作: http//getsharekit.com/install/

它通常开箱即用。

我遇到了同样的问题。 但最终这个错误是由params字典中的@“picture”键引起的。 所以我的建议是用Facebook的例子用字典取代你的params字典

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"Sharing Tutorial", @"name",
                                   @"Build great social apps and get more installs.", @"caption",
                                   @"Allow your users to share stories on Facebook from your app using the iOS SDK.", @"description",
                                   @"https://developers.facebook.com/docs/ios/share/", @"link",
                                   @"http://i.imgur.com/g3Qc1HN.png", @"picture",
                                   nil];

然后一步一步地弄清楚哪些从你的字典键导致空白屏幕。

在这里,我遇到了同样的问题。 我的解决方案是:

1.AppDelegate上删除[FBAppEvents activateApp]; [FBAppCall handleDidBecomeActive]; [FBAppEvents activateApp]; [FBAppCall handleDidBecomeActive]; - (void)applicationDidBecomeActive:(UIApplication *)application[FBSession.activeSession close]; 来自- (void)applicationWillTerminate:(UIApplication *) application

2.将显示名称与FB Id一起放在info.plist上。

3.删除旧框架,然后添加新框架v3.15.1(最新版)。 请记住将复制项目标记到目标组的文件夹中,添加目标

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM