Menggunakan Graph API, iOS

Gunakan Graph API untuk mendapatkan data keluar masuk grafik sosial Facebook.

Ini mencakup:

  • Mengambil informasi profil untuk menyediakan konteks sosial.
  • Mengambil informasi pengguna seperti suka atau foto.
  • Menerbitkan postingan (termasuk video atau foto) ke Facebook.
  • Menerbitkan cerita graf terbuka ke Facebook.
  • Untuk melihat fitur selengkapnya, lihat dokumentasi Graph API.

Panduan ini menjelaskan cara bekerja dengan Graph API menggunakan Facebook SDK untuk iOS.

Prasyarat

Pemanggilan Graph API mewajibkan seseorang untuk login ke aplikasi Anda melalui Facebook dan mengotorisasi izin untuk aplikasi Anda.

Contoh: jika Anda ingin mengambil alamat email seseorang, aplikasi Anda harus diotorisasi untuk izin email . Pastikan Anda memahami dengan baik:

Anda juga harus menyiapkan lingkungan pengembangan untuk iOS SDK dan penyiapan aplikasi Anda, lihat iOS, Panduan Memulai.

Mengambil Data Pengguna

SDK memiliki dua kelas untuk bekerja dengan Graph API: FBSDKGraphRequest dan FBSDKGraphRequestConnection yang mirip dengan NSURLRequest dan NSURLRequestConnectionkerangka kerja Fondasi.

Untuk menggunakan FBSDKGraphRequest , sediakan permintaan dengan endpoint Graph API tertentu. Lalu panggil FBSDKGraphRequestConnection untuk memulai permintaan dan memproses penyelesaian.

Untuk kenyamanan, SDK memiliki metode startWithCompletionHandler: di FBSDKGraphRequest untuk secara implisit membuat FBSDKGraphRequestConnection untuk Anda.

Contoh: untuk mengambil informasi profil seseorang yang saat ini login ke aplikasi Anda, lakukan panggilan ini:

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)")
    }
}

Permintaan Batch

Di Graph API, Anda dapat membuat permintaan batch dalam satu permintaan HTTP, lihat Graph API, Membuat Permintaan Batch.

Dengan SDK, Anda dapat membuat beberapa permintaan dan menambahkannya ke instance FBSDKGraphRequestConnection yang sama. Anda harus membuat batch permintaan jika memungkinkan untuk meminimalkan traffic jaringan.

Contoh: di sini kita meminta Suka seseorang:

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()
}

Anda juga dapat menentukan parameter batch dengan overload addRequest:completionHandler: , yang mencakup kemampuan untuk membuat batch dengan permintaan dependensi.

Membagikan Foto dan Video

Meskipun Anda selalu dapat membuat secara manual FBSDKGraphRequests agar bekerja dengan endpoint Graph API, Facebook SDK untuk iOS menyederhanakan pembagian foto dan video dengan FBSDKShareKit.framework. Contoh: untuk membagikan foto:

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()

Anda juga dapat membagikan video menggunakan jenis FBSDKShareVideoContent . Lihat Membagikan di iOS.

Menghapus Objek

Anda juga dapat menghapus objek yang dibuat aplikasi Anda dengan mengirimkan permintaan DELETE dengan ID objek sebagai jalur grafik.

Contoh: bayangkan Anda menerbitkan foto ke Halaman dan menerima ID "1234". Kode berikut akan menghapus foto tersebut:

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")
        }
    }
}

Tips Debugging

Anda dapat bereksperimen dan menguji permintaan Anda menggunakan Graph API Explorer.

Anda juga dapat mengaktifkan mode debug Graph API, lihat Pemecahan Masalah iOS SDK, Mode Debug Graph API.