您請求的網址返回您嘗試解析的HTML網頁,就像它是JSON資源一樣。您必須使用Facebook Graph API和/或Facebook Swift SDK以JSON形式獲取信息。
嘗試讀取Facebook的開發者文檔,瞭解更多信息:
https://developers.facebook.com/docs/swift
https://developers.facebook.com/docs/graph-api
此外,雨燕Error
對象包含的信息可以幫助你理解了什麼問題。您可以將它們打印到控制檯。試試這個:
if error != nil {
print(error)
} else {
// ...
catch語句還設置了塊內部自身的error
變量,所以你可以使用:
} catch {
print(error)
}
確保您瞭解參與創建一個Facebook應用程序的步驟:記錄在Facebook上下載應用程序,下載SDK,將SDK添加到項目中,爲您的應用程序配置SDK,在您的應用程序中登錄Facebook,然後調用Facebook Graph API以獲取信息。這些步驟都在上面提到的Facebook文檔中進行了描述。我跟iOS SDK(Objective-C的)設置項目說明啓動,然後改變你的應用程序委託和視圖控制器以下幾點:
AppDelegate.swift:
import UIKit
import FacebookCore
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return SDKApplicationDelegate.shared.application(app, open: url, options: options)
}
}
ViewController.swift:
import UIKit
import FacebookCore
import FacebookLogin
class ViewController: UIViewController, LoginButtonDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if let _ = AccessToken.current {
loadEvents()
}
let loginButton = LoginButton(readPermissions: [ .publicProfile, .userEvents ])
loginButton.center = view.center
loginButton.delegate = self
view.addSubview(loginButton)
}
func loginButtonDidCompleteLogin(_ loginButton: LoginButton, result: LoginResult) {
if let _ = AccessToken.current {
loadEvents()
}
}
func loginButtonDidLogOut(_ loginButton: LoginButton) {
// Logout handling code here
}
func loadEvents() {
let connection = GraphRequestConnection()
connection.add(GraphRequest(graphPath: "/me/events")) { httpResponse, result in
switch result {
case .success(let response):
print("Graph Request Succeeded: \(response)")
case .failed(let error):
print("Graph Request Failed: \(error)")
}
}
connection.start()
}
}
response
對象將包含已解析的Facebook事件信息。
是的,我嘗試過,但我並沒有真正理解它。你能提供更多的信息或示例代碼嗎? –