リクエストしているURLが、JSONリソースのように解析しようとしているHTMLページを返します。 JSONとして情報を取得するには、Facebook Graph APIおよび/またはFacebook Swift SDKを使用する必要があります。
は、より多くの情報のための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アプリを作成する手順を理解していることを確認してください:登録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イベント情報が含まれます。
はい、私は試しましたが、私はそれを本当に理解しませんでした。より多くの情報やサンプルコードを提供できますか? –