我正在使用Facebook的SDK允许用户登录我的应用程序,我希望该应用程序显示用户的个人资料图片。我有以下情节提要和快捷文件:
Main.storyboard&ViewController.swift
HomeAfterLogIn.storyboard和HomeAfterLogInViewController.swift
“ Main”包含用户用来登录的视图控制器,并且用户用来登录的代码如下:
import UIKit
import FacebookLogin
class ViewController: UIViewController
{
override func viewDidLoad()
{
super.viewDidLoad()
if AccessToken.current != nil
{
// Already logged-in
// Redirect to Home View Controller
goToHome()
}
// Add LoginButton
let loginButton = FBLoginButton(permissions: [ .publicProfile, .email, .userFriends ])
let screenSize:CGRect = UIScreen.main.bounds
let screenHeight = screenSize.height // real screen height
//let's suppose we want to have 10 points bottom margin
let newCenterY = screenHeight - loginButton.frame.height - 20
let newCenter = CGPoint(x: view.center.x, y: newCenterY)
loginButton.center = newCenter
view.addSubview(loginButton)
// Triggered after every successfully login / logout
NotificationCenter.default.addObserver(forName: .AccessTokenDidChange, object: nil, queue: OperationQueue.main) { [weak self] _ in
if AccessToken.current != nil {
// Successfully just Logged in
// Redirect to Home View Controller
self?.goToHome()
} else {
// Successfully just Logged out
}
}
}
func goToHome() {
let storyboard = UIStoryboard(name: "HomeAfterLogIn", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "HomeAfterLogInViewController") // I called mine like that (check screenshot below)
self.navigationController?.pushViewController(vc, animated: true)
}
}
此代码显示使用Facebook登录的按钮,如果用户在[]中输入成功的登录信息,则>]
func goToHome()
将用户发送到HomeAfterLogIn.storyboard,这是我希望显示用户个人资料图片的位置。
我在Facebook Graph API网站上找到了此代码:
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"/100046232170264/picture" parameters:@{ @"redirect": @"false",} HTTPMethod:@"GET"]; [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { // Insert your code here }];
上面的值与我的应用有关。当我将此代码插入HomeAfterLogInViewController.swift文件时,只会产生以下错误:
我输入的密码有误吗?是swift的先前版本,我的是swift 4还是5?这是我第一次使用Facebook SDK,因此任何帮助都是好的!预先感谢!
-发表评论后-
将obj-c转换为swift:
let request = FBSDKGraphRequest(graphPath: "/100046232170264/picture", parameters: [
"redirect": "false"
], httpMethod: "GET")
request.start(withCompletionHandler: { connection, result, error in
// Insert your code here
})
我正在使用Facebook的SDK允许用户登录我的应用程序,我希望该应用程序显示用户的个人资料图片。我有以下情节提要和快捷文件:Main.storyboard&...
Profile.loadCurrentProfile(completion: { profile, error in
if let profile = profile {
let imageURL = profile.imageURL(forMode: .square, size: CGSize(width: 200.0, height: 200.0))
}
})