FBSDKLoginManager.loginWithReadPermissions不在iOS上调用处理程序

FBSDKLoginManager.loginWithReadPermissions不在iOS上调用处理程序,第1张

概述简化,代码是这样的: func login() { NSLog("Will login with read permissions") FBSDKLoginManager().logInWithReadPermissions( ["public_profile"], handler: { (resu 简化,代码是这样的:

func login() {     NSLog("Will login with read permissions")     FBSDKLoginManager().logInWithReadPermissions(            ["public_profile"],handler: {                (result: FBSDKLoginManagerLoginResult!,error: NSError!) -> VoID in                    NSLog("Handler is called")            })     NSLog("Returning from login")}

调用它时,它会生成以下日志语句:

2015-05-25 11:35:07.886 MyApp[1213:646722] Will login with read permissions2015-05-25 11:44:22.048 MyApp[1213:646722] Returning from login

(上面的语句之间的大的时间差异是由于我使用调试器来逐步执行logInWithReadPermissions的内部.没有调试器的运行不会改变行为.)

我已经在安装了Facebook原生应用程序并且我已登录的设备上试过这个,我在没有本机应用程序的设备上试过这个,我从来没有访问过Facebook.我也在模拟器上试过这个.我得到了相同的结果.

我假设这是一个同步调用,但为了以防万一,我试着在调用线程中无限期地等待 – 处理程序仍然没有被调用,并且设备上没有任何可见的事情发生.

我打开了我能找到的所有日志记录:

FBSDKSettings.setLoggingBehavior(   [FBSDKLoggingBehaviorAppEvents,FBSDKLoggingBehaviorinformational,FBSDKLoggingBehaviorAccesstokens,FBSDKLoggingBehaviorUIControlErrors,FBSDKLoggingBehaviorgraphAPIDeBUGWarning,FBSDKLoggingBehaviorgraphAPIDeBUGInfo,FBSDKLoggingBehaviorNetworkRequests,FBSDKLoggingBehaviorCacheErrors,FBSDKLoggingBehaviorDeveloperErrors])

然后,在启动时,我得到这样的:

2015-05-25 11:35:01.320 MyApp[1213:646722] FBSDKLog: Request <#1111>:  URL:  https://graph.facebook.com/v2.3  Method:   POST  UserAgent:    FBiOSSDK.4.1.0  MIME: multipart/form-data; boundary=3i2ndDfv2rTHiSisAbouNdArYfORhttpEefj3q2f  Body (w/o attachments):       batch_app_ID:   140xxxxxxxxxxxxx    batch:  [{"relative_url":"140xxxxxxxxxxxxx?deBUG=info&fIElds=app_events_feature_bitmask%2Cname%2Cios_dialog_configs%2Csupports_implicit_sdk_logging%2Cgdpv4_nux_enabled%2Cgdpv4_nux_content%2Cios_supports_system_auth%2Cios_sdk_error_categorIEs&format=Json&include_headers=false&sdk=ios","method":"GET"},{"relative_url":"140xxxxxxxxxxxxx?deBUG=info&fIElds=app_events_feature_bitmask%2Cname%2Cios_dialog_configs%2Csupports_implicit_sdk_logging%2Cgdpv4_nux_enabled%2Cgdpv4_nux_content%2Cios_supports_system_auth%2Cios_sdk_error_categorIEs&format=Json&include_headers=false&sdk=ios","method":"GET"}]2015-05-25 11:35:01.321 MyApp[1213:646722] FBSDKLog: Request <#1111>:  URL:  https://graph.facebook.com/v2.3  Method:   POST  UserAgent:    FBiOSSDK.4.1.0  MIME: multipart/form-data; boundary=3i2ndDfv2rTHiSisAbouNdArYfORhttpEefj3q2f2015-05-25 11:35:01.329 MyApp[1213:646722] FBSDKLog: FBSDKTimeSpentData Restore: {"numInterruptions":0,"lastSuspendTime":1432544336,"secondsspentInCurrentSession":3}2015-05-25 11:35:01.363 MyApp[1213:646722] FBSDKLog: FBSDKAppEvents: Recording event @ 1432578901: {    "_eventname" = "fb_mobile_activate_app";    "_logTime" = 1432578901;    "_ui" = UIAlertController;    "fb_mobile_launch_source" = UnclassifIEd;}2015-05-25 11:35:01.364 MyApp[1213:646722] FBSDKLog: FBSDKAppEvents Persist: Read 0 event states. First state has 0 events2015-05-25 11:35:01.364 MyApp[1213:646722] FBSDKLog: FBSDKAppEvents Persist: Clearing2015-05-25 11:35:01.365 MyApp[1213:646722] FBSDKLog: FBSDKAppEvents: Recording event @ 1432578901: {    "_eventname" = "fb_mobile_deactivate_app";    "_logTime" = 1432578901;    "_ui" = UIAlertController;    "_valuetoSum" = 3;    "fb_mobile_app_interruptions" = 0;    "fb_mobile_launch_source" = UnclassifIEd;    "fb_mobile_time_between_sessions" = "session_quanta_5";}2015-05-25 11:35:01.781 MyApp[1213:646722] FBSDKLog: FBSDKURLConnection <#1114>:  Duration: 460 msecResponse Size: 1 kB  MIME type: application/Json2015-05-25 11:35:01.783 MyApp[1213:646722] FBSDKLog: Response <#1111>Duration: 461 msecSize: 2011 kBResponse Body:(        {        body =         {            "app_events_feature_bitmask" = 1;            "gdpv4_nux_content" = "New! You're in control - choose what info you want to share with apps.";            "gdpv4_nux_enabled" = 0;            ID = 140xxxxxxxxxxxxx;            "ios_dialog_configs" =             {                data =                 (                                        {                        name = like;                        url = "/connect/dialog/MPlatformlikeJsDialog";                        versions =                         (                            20140410                        );                    },{                        name = appinvites;                        url = "/connect/dialog/MPlatformAppInvitesJsDialog";                        versions =                         (                            20140410                        );                    }                );            };            "ios_sdk_error_categorIEs" =             (                                {                    items =                     (                                                {                            code = 102;                        },{                            code = 190;                        }                    );                    name = login;                    "recovery_message" = "Please log into this app again to reconnect your Facebook account.";                    "recovery_options" =                     (                        OK,Cancel                    );                },{                    items =                     (                                                {                            code = 341;                        },{                            code = 9;                        },{                            code = 2;                        },{                            code = 4;                        },{                            code = 17;                        }                    );                    name = transIEnt;                    "recovery_message" = "The server is temporarily busy,please try again.";                    "recovery_options" =                     (                        OK                    );                }            );            "ios_supports_system_auth" = 1;            name = MyApp;            "supports_implicit_sdk_logging" = 1;        };        code = 200;    },{        body =         {            "app_events_feature_bitmask" = 1;            "gdpv4_nux_content" = "New! You're in control - choose what info you want to share with apps.";            "gdpv4_nux_enabled" = 0;            ID = 140xxxxxxxxxxxxx;            "ios_dialog_configs" =             {                data =                 (                                        {                        name = like;                        url = "/connect/dialog/MPlatformlikeJsDialog";                        versions =                         (                            20140410                        );                    },please try again.";                    "recovery_options" =                     (                        OK                    );                }            );            "ios_supports_system_auth" = 1;            name = MyApp;            "supports_implicit_sdk_logging" = 1;        };        code = 200;    })2015-05-25 11:35:01.841 MyApp[1213:646722] FBSDKLog: Dynamically loaded library at /System/library/Frameworks/Accounts.framework/Accounts

或这个:

2015-05-25 12:04:59.336 MyApp[1221:650047] FBSDKLog: FBSDKTimeSpentData Restore: {"numInterruptions":0,"secondsspentInCurrentSession":3}2015-05-25 12:04:59.343 MyApp[1221:650047] FBSDKLog: FBSDKAppEvents: Recording event @ 1432580699: {    "_eventname" = "fb_mobile_activate_app";    "_logTime" = 1432580699;    "_ui" = UIAlertController;    "fb_mobile_launch_source" = UnclassifIEd;}2015-05-25 12:04:59.344 MyApp[1221:650047] FBSDKLog: FBSDKAppEvents Persist: Read 0 event states. First state has 0 events2015-05-25 12:04:59.344 MyApp[1221:650047] FBSDKLog: FBSDKAppEvents Persist: Clearing2015-05-25 12:04:59.345 MyApp[1221:650047] FBSDKLog: FBSDKAppEvents: Recording event @ 1432580699: {    "_eventname" = "fb_mobile_deactivate_app";    "_logTime" = 1432580699;    "_ui" = UIAlertController;    "_valuetoSum" = 3;    "fb_mobile_app_interruptions" = 0;    "fb_mobile_launch_source" = UnclassifIEd;    "fb_mobile_time_between_sessions" = "session_quanta_5";}

无论哪种方式,我的处理程序从未被调用,但logInWithReadPermissions函数返回正常.

我在AppDelegate中实现了以下所有内容:

func application(application: UIApplication,dIDFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {   FBSDKApplicationDelegate.sharedInstance().application(       application,dIDFinishLaunchingWithOptions: launchOptions)}func applicationDIDBecomeActive(application: UIApplication) {    FBSDKAppEvents.activateApp()}func application(application: UIApplication,openURL url: NSURL,sourceApplication: String?,annotation: AnyObject?) -> Bool {    return FBSDKApplicationDelegate.sharedInstance().application(        application,openURL: url,sourceApplication: sourceApplication,annotation: annotation)}

我在Info.pList中有这些行:

<array>    <dict>        <key>CFBundleURLSchemes</key>        <array>            <string>fb140xxxxxxxxxxxxx</string>        </array>    </dict></array><key>FacebookAppID</key><string>140xxxxxxxxxxxxx</string><key>Facebookdisplayname</key><string>MyApp</string>

我在上面遗漏了什么?如果没有,我该如何进一步调试呢?我可以打开或关闭的任何日志记录?我在XCode或Facebook方面的应用程序设置中的任何人都可以想到我可以看到的东西?

解决方法 你说:

“I trIEd waiting indefinitely in the calling thread — the handler is
still never called,and nothing visible is happening on the device.”

这个调用绝对不是同步的,如果你让主线程忙于紧密的等待循环,那么它将无法“回电”.

要检查的另一件事是确保您的应用程序委托也没有实现

func application(app: UIApplication,options: [String : AnyObject]) -> Bool {

如果在app delegate中实现此方法,则将忽略其他实现:

func application(application: UIApplication,annotation: AnyObject?) -> Bool
总结

以上是内存溢出为你收集整理的FBSDKLoginManager.loginWithReadPermissions不在iOS上调用处理程序全部内容,希望文章能够帮你解决FBSDKLoginManager.loginWithReadPermissions不在iOS上调用处理程序所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1014217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存