facebook登录问题 - canOpenURL:网址失败:"fbauth2:///" - 错误:"(null)"

sfb*_*man 60 facebook facebook-graph-api ios parse-platform swift

当我点击登录Facebook按钮时,它正在打开safari浏览器并立即关闭.控制台上出现错误.

App委托方法:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
    print("###### URL : ")
    print(url)
    print("###### App : ")
    print(app)
    print(options["UIApplicationOpenURLOptionsSourceApplicationKey"])
    return FBSDKApplicationDelegate.sharedInstance().application(app, openURL: url,  sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String,
            annotation: nil)
}
Run Code Online (Sandbox Code Playgroud)
2015-09-18 18:37:51.410 [21036:5050465] -canOpenURL: failed for URL: "fbauth2:///" - error: "(null)"

2015-09-18 18:37:51.417[21036:5050465] -canOpenURL: failed for URL: "fbauth2:///" - error: "(null)"

###### URL : 

fb4554284912963222://authorize/?error_code=100&error_message=Invalid+Scope%3A+public&state=%7B%22challenge%22%3A%222ZmK6R5F05d%252F060TkCqj8SjPLjc%253D%22%2C%220_auth_logger_id%22%3A%223C79F2C8-61B9-470E-AE1B-E1C68435DB83%22%2C%22com.facebook.sdk_client_state%22%3Atrue%2C%223_method%22%3A%22sfvc_auth%22%7D&e2e=%7B%22init%22%3A145973.000512302%7D#_=_

###### App : 


Optional(com.apple.SafariViewService)
nil

###### err:

Optional(Error Domain=com.facebook.sdk.core Code=8 "(null)" UserInfo={com.facebook.sdk:FBSDKGraphRequestErrorGraphErrorCode=100, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=Invalid Scope: public, com.facebook.sdk:FBSDKGraphRequestErrorCategoryKey=0})

IDE:xcode 7
语言:Swift2
Facebook SDK:4.6.0
解析:1.8.4

我还验证了.plist是否拥有所需的所有密钥.还验证了拼写错误的捆绑标识符.一切都很好看.Facebook很活跃.

有帮助吗?

Edo*_*Ben 44

我有同样的警告,但在Facebook Docs中有一个答案.

这是一个Xcode警告,指示canOpenURL:call返回false.只要您如上所述在plist中配置了LSApplicationQueriesSchemes条目,就可以忽略此警告

https://developers.facebook.com/docs/ios/ios9


小智 35

"-canOpenURL:URL失败"警告是一个红色的鲱鱼,只是意味着你正在运行的设备/模拟器上没有安装FB应用程序.

看起来您正在请求"公共"的无效范围(也称为权限).你能包括你的代码,其中包括你要求的权限吗?public_profile可能就是您想要的(如果没有提供SDK,则默认为SDK).

更重要的是,不要将fbauth2添加到CFBundleURLSchemes中,因为这会破坏登录流程.正如Himanshu指出的那样,这些条目应该在我们的plist中的LSApplicationQueriesSchemes下输入.


Pau*_*Slm 0

您的网址“fbauth2:///”中有一个额外的“/”。

然后您可以在网址中看到“error_message=Invalid+Scope”,您可能应该检查应用程序的权限: https ://developers.facebook.com/docs/facebook-login/permissions/v2.4