Я использую SDK Facebook, чтобы позволить пользователю войти в мое приложение, я бы хотел, чтобы приложение отображало фотографию профиля пользователя. У меня есть следующие раскадровки и быстрые файлы:
«Основной» содержит контроллер представления, с помощью которого пользователь входит в систему, и код для входа в систему пользователя выглядит следующим образом:
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, и именно здесь я хотел бы, чтобы изображение профиля пользователя отображалось.
Я нашел этот код на веб-сайте API Graphs Facebook:
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? Я впервые использую SDK для Facebook, поэтому любая помощь хороша! Заранее спасибо!
- После комментариев к сообщению -
(Кешу Р.) Преобразование 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
})
(Кароль Змысловский) ) Ошибки из кода:
(Кешу Р.) Элементы пользовательского интерфейса в HomeAfterLogIn.storyboard: