iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – FaceBook iOS – 检查我的Facebook应用程序是否已经全部授权大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题是如何检查我的FaceBook应用程序是否已被用户授权发布,无法找到任何相关信息.

我正在使用:

Facebook* facebook = [[Facebook alloc] initWithAppId:@"1234567"];
 [facebook authorize:[NSArray arrayWithObjects:@"read_stream",@"offline_access",nil] delegate:self];

弹出一个对话框,要求我授权该应用程序,完成后我很好,可以执行以下操作:

[facebook dialog:@"Feed" andDelegate:self];

在该应用上发布笔记.

但是,如果用户显示发布对话框之前阻止或删除了我想再次进行授权的应用程序,则在调用授权之前找不到获取该类信息的方法.

任何帮助表示赞赏.

谢谢.

解决方法

也必须处理这个问题.

调用dialog方法时,发送一个符合FBDialogDelegate的委托,该委托有一个方法,当对话框由于错误而无法加载时调用方法.但是在应用程序未经授权的情况下,对话框会向用户显示登录屏幕,但在设置用户和密码后,会出现第二个表单,让用户知道发生了错误.委托也被调用,但收到的错误只是声明他的方法失败,没有确切的原因,甚至是错误号.应该在任何事情之前使用正确的错误调用方法,以便应用程序可以相应地执行操作.

所以我找到了一个解决方案,也许这不是最好的方法,但它确实有效.如果应用程序未被用户授权,您通过请求对Facebook图形API执行的任何调用都将失败.所以我做的是在调用Feed对话框方法之前检查它.

添加以下行,您需要测试应用程序是否仍在授权:

if ([facebook isSessionValid])
    //isSessionValid only checks if the access token is set,and the expiration date is still valid. Lets make a call and see if we really are authorized to post to this user from this app.     
    [facebook requestWithGraPHPath:@"me" andDelegate:self];
else
    //authorize Facebook connect

这将只调用返回用户基本信息的方法.如果一切正常,将从委托调用以下方法

- (void)request:(FBrequest *)request didLoad:(id)result
{
   //Everything is ok. You can call the dialog method. It should work.
}

如果应用程序未被用户授权,则会调用委托中的以下方法

- (void)request:(FBrequest *)request didFailWithError:(NSError *)error;
{        
    NSString *type = [[[error userInfo] objectForKey:@"error"] objectForKey:@"type"];

    if (typE)
    {
        if ([type isEqualToString:@"OAuthException"]) //aha! 
        {
            //user has unauthorized the app,lets logout from Facebook connect. Also clear the access and expiration date tokens
            [facebook logout:self];


            //Call the authorize method again. Or let the user kNow they need to authorize the app again.
        }
    }
}

所以,正如我之前所说,不是最好的方式,而是完成工作.希望Facebook能够添加一种方法来检查这个特定的场景,或者为代表添加一个处理未授权应用程序问题的新方法.

大佬总结

以上是大佬教程为你收集整理的iphone – FaceBook iOS – 检查我的Facebook应用程序是否已经全部授权全部内容,希望文章能够帮你解决iphone – FaceBook iOS – 检查我的Facebook应用程序是否已经全部授权所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。