我们正在使用:
Parse - 1.8.3 FBSDK.* - 4.6.0 ParseUI - 1.1.6 ParseFacebookUtilsV4 - 1.8.3 IOS目标 - 9.0
这是我们的问题.用户登录应用程序正常.他们进入Facebook.com->帐户 - >设置并取消对该应用的授权(完全删除它).
当用户再次启动我们的应用程序时,他们会收到来自FBSDK的对话框,其中显示"请再次登录此应用程序以重新连接Facebook"(选项正常并取消).
我用google搜索了这个问题并看到了其他问题,但在他们的情况下它略有不同(也许是功能性的).这是因为,当您在该对话框中单击"确定"时,它什么都不做.似乎点击确定应该做一个登录流程(这将是恒星),但再次 - 它什么也没做.
我已经点击了FBSDK广播的通知,可以看到我收到通知:
com.facebook.sdk.FBSDKAccessTokenData.FBSDKAccessTokenDidChangeNotification
作为错误代码190和子代码458的结果.
我的问题是两个部分:1)如何在FBSDK对话框中获得我的"确定"按钮,该按钮会自动显示实际用ok按钮执行某些操作?2)如何手动(假设上面的按钮由于某种原因不起作用)测试accessToken状态并重新授权用户?
这似乎必须有一个简单的解决方案,我已经花了几天时间,并且无法领先于此.
感谢您的帮助或指导!
我遇到了类似的问题(虽然它与 Parse 无关)。以下是我对您提出的两个问题的回答:
由于这个原因,FBSDK 对话框的 OK 按钮似乎不起作用:
Attempt to present <FBSDKContainerViewController: 0x126b222a0> on
<FBSDKContainerViewController: 0x126a26d10> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)
至少当我尝试在我的应用程序中(在连接到 Macbook 的设备上)登录 Facebook 并且我的尝试失败时,我在 Xcode 控制台中看到了上述警告。我没有找到解决这个特定问题的方法。但我找到了一种避免 FBSDK 对话框的方法。请参阅下一项。
我通过请求有关 FB 用户的信息来测试 accessToken 的有效性。如果请求失败并出现错误,则可能意味着 accessToken 无效。这是一个代码示例:
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"me" parameters:@{@"fields": @"id, first_name, last_name"}];
// The next line is important.
// It prevents FB SDK from handling the error automatically
// and allows you to handle the error yourself.
// In this way you avoid(!) the FBSDK dialog that says
// "Please login to this app again to reconnect with Facebook".
[request setGraphErrorRecoveryDisabled:YES];
[request startWithCompletionHandler:
^(FBSDKGraphRequestConnection *connection, id result, NSError *error){
if (error) {
// An error occurred. Most likely the accessToken is not valid.
// Start the FB log-in process to obtain a valid token.
}else{
// Everything's all right. Go on.
}
}];
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
3456 次 |
| 最近记录: |