Sử dụng API Đồ thị để đưa dữ liệu vào và lấy dữ liệu ra khỏi đồ thị mạng xã hội của Facebook.
Hoạt động này bao gồm:
Hướng dẫn này mô tả cách bạn làm việc với API Đồ thị thông qua Facebook SDK dành cho iOS.
Để gọi API Đồ thị, người dùng phải đăng nhập vào ứng dụng của bạn qua Facebook và cấp quyền cho ứng dụng.
Ví dụ: nếu bạn muốn tìm nạp địa chỉ email của ai đó, ứng dụng phải được cấp quyền email
. Hãy đảm bảo bạn đã biết cách:
Bạn cũng cần thiết lập môi trường phát triển cho iOS SDK và thiết lập ứng dụng của mình, hãy xem iOS, Hướng dẫn bắt đầu.
SDK có 2 lớp để hoạt động với API Đồ thị: FBSDKGraphRequest
và FBSDKGraphRequestConnection
tương tự như NSURLRequest
và NSURLRequestConnection
của khung Foundation.
Để sử dụng FBSDKGraphRequest
, bạn cung cấp yêu cầu kèm theo điểm cuối API Đồ thị cụ thể. Sau đó, hãy gọi FBSDKGraphRequestConnection
để bắt đầu yêu cầu và xử lý quá trình hoàn tất.
Để thuận tiện, SDK có phương thức startWithCompletionHandler:
trên FBSDKGraphRequest
để tự động tạo một FBSDKGraphRequestConnection
cho bạn.
Ví dụ: để tìm nạp thông tin trang cá nhân cho người dùng đang đăng nhập vào ứng dụng của bạn, hãy thực hiện lệnh gọi sau:
guard AccessToken.current != nil else { return } let request = GraphRequest(graphPath: "me", parameters: [:]) request.start() { connection, result, error in if let result = result, error == nil { print("fetched user: \(result)") } }
Trong API Đồ thị, bạn có thể thực hiện yêu cầu hàng loạt trong một yêu cầu HTTP duy nhất, hãy xem API Đồ thị, Thực hiện yêu cầu hàng loạt.
Với SDK này, bạn có thể tạo nhiều yêu cầu và thêm vào cùng một phiên bản FBSDKGraphRequestConnection
. Bạn nên thực hiện yêu cầu hàng loạt mỗi khi có thể để giảm thiểu lưu lượng truy cập mạng.
Ví dụ: sau đây, chúng tôi sẽ yêu cầu Lượt thích của ai đó:
guard let token = AccessToken.current else { return } if token.hasGranted("user_likes") { let meRequest = GraphRequest(graphPath: "me", parameters: [:]) let likesRequest = GraphRequest(graphPath: "me/likes", parameters: [:]) let connection = GraphRequestConnection() connection.add(meRequest) { connection, result, error in // Process the 'me' information } connection.add(likesRequest) { connection, result, error in // Process the 'likes' information } connection.start() }
Bạn cũng có thể chỉ định hàng loạt thông số, trong đó addRequest:completionHandler:
bị quá tải, bao gồm khả năng tạo lô với các yêu cầu phụ thuộc.
Mặc dù bạn luôn có thể tạo FBSDKGraphRequests
theo cách thủ công để hoạt động với các điểm cuối API Đồ thị, Facebook SDK dành cho iOS sẽ đơn giản hóa việc chia sẻ ảnh và video với FBSDKShareKit.framework
. Ví dụ: cách chia sẻ ảnh:
let image: UIImage! let content = SharePhotoContent() content.photos = SharePhoto(image: image, isUserGenerated: true) // Assuming self implements SharingDelegate let dialog = ShareDialog( viewController: self, content: content, delegate: self ) dialog.show()
Bạn cũng có thể chia sẻ video bằng loại FBSDKShareVideoContent
. Hãy xem phần Chia sẻ trên iOS.
Bạn cũng có thể xóa các đối tượng mà ứng dụng của mình đã tạo bằng cách gửi yêu cầu DELETE
kèm theo ID của đối tượng dưới dạng đường dẫn đồ thị.
Ví dụ: hãy tưởng tượng bạn đã đăng một ảnh lên Trang và nhận được ID là "1234". Mã sau đây sẽ xóa ảnh đó:
guard let token = AccessToken.current else { return } if token.hasGranted("pages_manage_posts") { let request = GraphRequest(graphPath: "1234", parameters: [:], httpMethod: .delete) request.start { connection, result, error in if error == nil { print("Deleted photo") } } }
Bạn có thể thử nghiệm và kiểm tra yêu cầu của mình bằng Trình khám phá API Đồ thị.
Bạn cũng có thể bật chế độ gỡ lỗi API Đồ thị, hãy xem phần Khắc phục sự cố iOS SDK, Chế độ gỡ lỗi API Đồ thị.