我从我的podfile使用荚:
PODS:
- 螺栓(1.8.4):
- 螺栓/ AppLinks( = 1.8.4)
- 螺栓/任务(= 1.8.4)
- 螺栓/ AppLinks(1.8.4):
- 螺栓/任务
- 螺栓/任务(1.8.4)
- FacebookCore (0.2.0):
- 螺栓(〜> 1.8)
- FBSDKCoreKit(〜> 4.15)
- FacebookLogin(0.2.0):
- 螺栓(〜> 1.8)
- FacebookCore(〜> 0.2)
- FBSDKCoreKit(〜> 4.15)
- FBSDKLoginKit(〜> 4.15)
- FBSDKCoreKit(4.16.0):
- 螺栓(〜> 1.7)
- FBSDKLoginKit(4.16.1):
- FBSDKCoreKitFacebook的登录文档使用(雨燕3.0 FacebookLogin 0.2.0)的WebView不打烊
我LoginViewController.swift代码:
import FacebookLogin
class LoginViewController: UIViewController, LoginButtonDelegate {
/*!
@abstract Sent to the delegate when the button was used to login.
@param loginButton the sender
@param result The results of the login
@param error The error (if any) from the login
*/
override func viewDidLoad() {
super.viewDidLoad()
let loginButton = LoginButton(readPermissions: [ .publicProfile ])
loginButton.center = view.center
loginButton.delegate = self;
view.addSubview(loginButton)
}
/**
Called when the button was used to login and the process finished.
- parameter loginButton: Button that was used to login.
- parameter result: The result of the login.
*/
public func loginButtonDidCompleteLogin(_ loginButton: FacebookLogin.LoginButton, result: FacebookLogin.LoginResult){
print("hello!")
}
/**
Called when the button was used to logout.
- parameter loginButton: Button that was used to logout.
*/
public func loginButtonDidLogOut(_ loginButton: FacebookLogin.LoginButton){
print("goodbye")
}
我修改AppDelegate.swift代码:
public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
// Override point for customization after application launch.
return SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
return SDKApplicationDelegate.shared.application(application, open: url, options: [:])
}
语境:
我下载的一切,带豆荚,并通过xcode的提示所有代码转换为SWIFT 3.0,所以我这样做了。我遵循本指南开始登录:https://developers.facebook.com/docs/swift 如果我在我的应用程序委托中没有运行第二个功能,我不得不在登录后弹出的web视图中按“完成”,然后收到响应“你好“,如果我在那个时候设置了一个断点,我发现我的登录被认为是取消了。另外,我初始化的facebook按钮仍然会提示我登录,所以它肯定无法工作。此外,我也得到这个错误:
-canOpenURL: failed for URL: "fbauth2:/" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"
然而,如果我离开该方法,它会关闭,但委托永远不会被调用。另外,按钮进入提示我登录
我的Info.plist:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fbMYID</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>MYID</string>
<key>FacebookDisplayName</key>
<string>MYAPPNAME</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
额外的信息:
我是新来的迅速,但是我可以告诉大家,我需要我的方法拿出来让它工作,但我不确定如何解决这个问题。我没有任何名为FBSDKApplicationDelegate的东西(从我浏览过的其他类似问题中查看),因为我使用的是来自此处的新的swift SDK:https://developers.facebook.com/docs/swift。我猜测,鉴于当前版本的swift,登录文档已过时,或者我错过了指向某些先决条件的链接。如果您对我的问题有任何解决方案,请告诉我。我的info.plist应该全部设置,否则我会尝试登录时发生错误。我可以到达屏幕,它表示您已经授予MYAPP权限。然后我继续按OK,然后如果我的应用程序委托中有openURL方法,它会关闭,或者它保持空白。我强烈怀疑它与我在调用SDKApplicationDelegate时从open方法留下空白字典的选项有关。由于
检查我更新的问题,我添加了我的plist的一部分。你的意思是吗?它已经是这样了。 – user2977578
对不起,我误解了,但我仍然面临这个解决方案的例外。如果我对第一个appID进行了更改,那么我会得到一个异常,如果我将fbauth2添加到两个Facebook应用程序ID中,那么我会得到另一个异常,如果仅将它添加到最后一个ID,我会得到一个异常。 – user2977578
通过Facebook你真的想做什么喜欢Facebook登录&注销?还是?你真正想要做什么告诉我? – iSonask