【问题标题】:FBRequest Delegate method request:didLoad: is not getting calledFBRequest 委托方法请求:didLoad:没有被调用
【发布时间】:2012-01-02 09:28:22
【问题描述】:

我正在使用 Facebook ios sdk 进行共享,我需要获取用户基本信息,例如 userName 我正在执行以下操作, 在@界面中

@interface ViewController : UIViewController<FBRequestDelegate,FBDialogDelegate,FBSessionDelegate>
--------
@property (nonatomic,retain) FBRequest *fbRequestObj;

在@实现中

- (void)viewDidLoad
{
    fbRequestObj = [[FBRequest alloc] init];
    [fbRequestObj setDelegate:(id)self];
    [super viewDidLoad];
}

- (void)request:(FBRequest *)request didLoad:(id)result {
    NSString* name = [result objectForKey:@"name"];
    userName = [NSString stringWithFormat:@"Logged in as %@",name];       
}

但我的问题是上面的 FBRequest 委托在任何情况下都没有被调用。我的实施方式是否正确?如果不是请指导我。 任何帮助都提前致谢。

【问题讨论】:

    标签: iphone objective-c ios facebook ipad


    【解决方案1】:

    分配/初始化 FBRequest 对象的方式看起来不正确。
    根据documentation,您可以尝试执行以下操作:

    -(void)viewDidLoad
    {
        /* create the params dictionary */
        self.fbRequestObj = [FBRequest requestWithParams:yourParamsDictionary
                                                delegate:self];
        [super viewDidLoad];
    }
    

    【讨论】:

    • 我不想传递任何参数字典,我只想在用户登录 FB 后立即获取用户名,我如何获取该数据?
    • 你的问题是关于委托方法没有被调用,我指出你的FBRequest 对象不是很好的分配/初始化。 (再次)查看文档让我认为请求必须有一些参数..因为 FB 无法猜测您要获取的信息。
    • 根据我的研究,我在完成后在 fbDidLogin() 方法中了解到类似的内容,只需调用 [facebook requestWithGraphPath:@"me" andDelegate:self];然后在 - (void)request:(FBRequest *)request didLoad:(id)result 中,您可以获得详细信息,但仍然可以解决这个问题!!!
    • 很好,但你和我说的一样。在您的评论示例中,该请求仍未像问题中那样分配/初始化,正如我在回答中指出的那样
    • 感谢您的回复,,,你现在我分配了你对我说的,我现在没有任何参数,所以我可以在那里传递什么?
    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 2020-11-28
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多