Sử dụng API Đồ thị, iOS

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:

  • Tìm nạp thông tin trang cá nhân để cung cấp ngữ cảnh xã hội.
  • Tìm nạp thông tin người dùng như sở thích hoặc ảnh của họ.
  • Đăng bài viết (bao gồm video hoặc ảnh) lên Facebook.
  • Đăng tin đăng bằng Open Graph lên Facebook.
  • Để biết thêm các tính năng khác, hãy xem Tài liệu về API Đồ thị.

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.

Điều kiện tiên quyết

Để 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.

Tìm nạp dữ liệu người dùng

SDK có 2 lớp để hoạt động với API Đồ thị: FBSDKGraphRequestFBSDKGraphRequestConnection tương tự như NSURLRequestNSURLRequestConnectioncủ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)")
    }
}

Yêu cầu hàng loạt

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.

Chia sẻ ảnh và video

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.

Xóa đối tượng

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í quyết gỡ lỗi

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ị.