Nat*_*kle 5 facebook swift ios9.1
我已经为我的XCode 7.1项目添加了最新的Facebook SDK iOS 9.1.不幸的是我所知道的是斯威夫特,而不是目标C.Facebook的开发者网站文档仅包含Objective C中的文档.谷歌上的每一次搜索都会显示过于陈旧的文档,因为过去6个月内事情发生了很大变化.所以我有点迷茫.
我用plist文件做了所有简单的事情.
我能够使用:
import FBSDKCoreKit
import FBSDKLoginKit
Run Code Online (Sandbox Code Playgroud)
我还补充说:
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
Run Code Online (Sandbox Code Playgroud)
和
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
Run Code Online (Sandbox Code Playgroud)
到我的AppDelegate.swift档案.这一切都有效并且构建成功.显然,我也添加了正确的框架.除此之外,我处于停滞状态,因为我不知道添加登录按钮的语法,用于捕获我认为会返回带有令牌的json字符串以及我可以用来存储在用户帐户中的其他配置文件信息等等. .
你走在正确的轨道上.
您将不得不添加到您的VC,添加登录按钮,处理委托,然后处理FB信息.像(但不完全)这样的东西:
class yourVC: UIViewController, FBSDKLoginButtonDelegate, UITextFieldDelegate
{
var loginView : FBSDKLoginButton = FBSDKLoginButton()
viewDidLoad() {
loginView.frame = CGRectMake(20, 20, theWidth-40, 40)
self.view.addSubview(loginView)
loginView.readPermissions = ["public_profile", "email", "user_friends","user_birthday"]
loginView.delegate = self
}
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
if ((error) != nil)
{
//handle error
} else {
returnUserData()
}
}
func returnUserData()
{
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"id,interested_in,gender,birthday,email,age_range,name,picture.width(480).height(480)"])
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
if ((error) != nil)
{
// Process error
print("Error: \(error)")
}
else
{
print("fetched user: \(result)")
let id : NSString = result.valueForKey("id") as! String
print("User ID is: \(id)")
//etc...
}
})
}
Run Code Online (Sandbox Code Playgroud)
你将不得不玩这个returnData()部分才能做到正确,但是这段代码可以让你获得90%的成功.
我已经包含了广泛的权限(用户年龄,感兴趣等),但您必须自己配置它们.老实说,这部分(困难的部分)与它的对象C对应物非常相似,它更好地记录了.只需下载一些可以正常工作的项目,并尝试将它们拼凑成适合您喜欢的东西.
它可能很难让它全部工作,但要试一试,并坚持下去!
如果您想通过点击自定义按钮从Facebook登录,这将有助于:
@IBAction func onClickFacebookButton(sender: UIButton){
let login = FBSDKLoginManager()
login.loginBehavior = FBSDKLoginBehavior.SystemAccount
login.logInWithReadPermissions(["public_profile", "email"], fromViewController: self, handler: {(result, error) in
if error != nil {
print("Error : \(error.description)")
}
else if result.isCancelled {
}
else {
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "first_name, last_name, picture.type(large), email, name, id, gender"]).startWithCompletionHandler({(connection, result, error) -> Void in
if error != nil{
print("Error : \(error.description)")
}else{
print("userInfo is \(result))")
}
})
}
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10551 次 |
| 最近记录: |