Saya mencoba mendapatkan nama dan id teman saya dengan Graph API v2.0, tetapi data kembali kosong:
{
"data": [
]
}
Ketika saya menggunakan v1.0, semuanya baik-baik saja dengan permintaan berikut:
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
NSLog(@"Found: %i friends", friends.count);
for (NSDictionary<FBGraphUser>* friend in friends) {
NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
}
}];
Tapi sekarang saya tidak bisa mendapatkan teman!
Jawaban:
Di v2.0 dari Graph API, panggilan
/me/friends
mengembalikan teman orang yang juga menggunakan aplikasi.Selain itu, di v2.0, Anda harus meminta
user_friends
izin dari setiap pengguna.user_friends
tidak lagi disertakan secara default di setiap login. Setiap pengguna harus memberikanuser_friends
izin untuk muncul dalam respons/me/friends
. Lihat panduan peningkatan Facebook untuk informasi lebih rinci, atau tinjau ringkasan di bawah ini.Jika Anda ingin mengakses daftar teman yang tidak menggunakan aplikasi, ada dua opsi:
Jika Anda ingin orang-orang Anda menandai teman-teman mereka dalam cerita yang mereka terbitkan ke Facebook menggunakan Aplikasi Anda, Anda dapat menggunakan
/me/taggable_friends
API. Penggunaan titik akhir ini membutuhkan peninjauan oleh Facebook dan hanya boleh digunakan untuk kasus di mana Anda memberikan daftar teman untuk memungkinkan pengguna menandai mereka dalam sebuah pos.Jika Aplikasi Anda adalah Game DAN Game Anda mendukung Facebook Canvas , Anda dapat menggunakan
/me/invitable_friends
titik akhir untuk merender dialog undangan khusus , lalu meneruskan token yang dikembalikan oleh API ini ke Dialog Permintaan standar.Dalam kasus lain, aplikasi tidak lagi dapat mengambil daftar lengkap teman-teman pengguna (hanya teman-teman yang secara khusus mengizinkan aplikasi Anda menggunakan
user_friends
izin). Ini telah dikonfirmasi oleh Facebook sebagai 'oleh desain'.Untuk aplikasi yang ingin memungkinkan orang mengundang teman untuk menggunakan aplikasi, Anda masih dapat menggunakan Dialog Kirim di Web atau Dialog Pesan baru di iOS dan Android .
UPDATE: Facebook telah menerbitkan FAQ tentang perubahan ini di sini: https://developers.facebook.com/docs/apps/faq yang menjelaskan semua opsi yang tersedia untuk pengembang untuk mengundang teman, dll.
sumber
taggable_friends
dalam item untuk pengiriman ulasan.taggable_friends
sekarang mengembalikan apa-apa. Juga, tinjauan login diperlukan sebelum Anda dapatuser_friends
izin.Meskipun jawaban Simon Cross diterima dan benar, saya pikir saya akan menambahkannya sedikit dengan contoh (Android) tentang apa yang perlu dilakukan. Saya akan menjaganya agar tetap umum dan fokus hanya pada pertanyaan. Secara pribadi saya akhirnya menyimpan hal-hal dalam database sehingga pemuatannya lancar, tetapi itu membutuhkan CursorAdapter dan ContentProvider yang sedikit keluar dari ruang lingkup di sini.
Saya datang ke sini sendiri dan kemudian berpikir, sekarang apa ?!
Masalah
Sama seperti user3594351 , saya memperhatikan bahwa data teman itu kosong. Saya menemukan ini dengan menggunakan FriendPickerFragment. Apa yang berhasil tiga bulan lalu, tidak lagi berhasil. Bahkan contoh-contoh Facebook pecah. Jadi masalah saya adalah 'Bagaimana Saya membuat FriendPickerFragment dengan tangan?
Apa yang Tidak Berhasil
Opsi # 1 dari Simon Cross tidak cukup kuat untuk mengundang teman ke aplikasi. Simon Cross juga merekomendasikan Dialog Permintaan, tetapi itu hanya akan memungkinkan lima permintaan sekaligus. Dialog permintaan juga menunjukkan teman yang sama selama sesi login Facebook yang diberikan. Tidak berguna.
Apa yang Bekerja (Ringkasan)
Opsi # 2 dengan kerja keras. Anda harus memastikan Anda memenuhi aturan baru Facebook: 1.) Anda adalah game 2.) Anda memiliki aplikasi Canvas (Keberadaan Web) 3.) Aplikasi Anda terdaftar di Facebook. Itu semua dilakukan di situs web pengembang Facebook di bawah Pengaturan .
Untuk meniru pemetik teman dengan tangan di dalam aplikasi saya, saya melakukan hal berikut:
Detail
AsynchTask
Kelas FacebookFriend yang saya buat
sumber
Facebook telah merevisi kebijakan mereka sekarang. Anda tidak bisa mendapatkan seluruh daftar teman jika aplikasi Anda tidak memiliki implementasi Canvas dan jika aplikasi Anda bukan game. Tentu saja ada juga taggable_friends, tetapi itu hanya untuk pemberian tag.
Anda akan dapat menarik daftar teman yang telah mengotorisasi aplikasi saja.
Aplikasi yang menggunakan Graph API 1.0 akan bekerja hingga 30 April 2015 dan setelah itu akan ditinggalkan.
Lihat yang berikut untuk mendapatkan detail lebih lanjut tentang ini:
Teman Pengguna
FAQ Pengembangan Aplikasi Facebook
sumber
Di Swift 4.2 dan Xcode 10.1:
Jika Anda ingin mendapatkan daftar teman dari Facebook, Anda harus mengirimkan aplikasi Anda untuk ditinjau di Facebook. Lihat beberapa Izin Masuk:
Izin Masuk
Inilah dua langkah:
1) Pertama status aplikasi Anda harus dalam Live
2) Dapatkan izin yang diperlukan dari Facebook.
1) Aktifkan status aplikasi kami secara langsung:
Buka halaman aplikasi dan pilih aplikasi Anda
https://developers.facebook.com/apps/
Pilih status di kanan atas di Dasbor .
Kirim URL kebijakan privasi
Pilih kategori
Sekarang aplikasi kami dalam status Live .
Satu langkah selesai.
2) Kirim aplikasi kami untuk ditinjau:
Pertama kirim permintaan yang diminta.
Contoh: user_friends, user_videos, user_posts, dll.
Kedua, buka halaman Permintaan Saat Ini
Contoh: user_events
Kirim semua detail
Seperti ini kirimkan untuk semua permintaan (user_friends, user_events, user_videos, user_posts, dll.).
Akhirnya kirimkan aplikasi Anda untuk ditinjau.
Jika ulasan Anda diterima dari sisi Facebook, Anda sekarang berhak membaca kontak, dll.
sumber
user_friends
izin sangat terbatas. Dari dokumentasi Facebook (April, 2019): [Ini hanya] memberikan izin aplikasi untuk mengakses daftar teman yang juga menggunakan aplikasi tersebut. Izin ini terbatas untuk mitra terbatas dan penggunaannya memerlukan persetujuan terlebih dahulu oleh Facebook. Agar seseorang dapat muncul di daftar teman orang lain, kedua orang harus telah berbagi daftar teman mereka dengan aplikasi dan tidak menonaktifkan izin ini saat login.Seperti yang Simon katakan, ini tidak mungkin di Facebook API baru. Murni secara teknis Anda dapat melakukannya melalui otomatisasi browser.
Implementasi sampel menggunakan WatiN :
Prototipe dengan implementasi pendekatan ini (menggunakan C # / WatiN) lihat https://github.com/svejdo1/ShadowApi . Hal ini juga memungkinkan pembaruan dinamis dari konektor Facebook yang mengambil daftar kontak Anda.
sumber
Coba
/me/taggable_friends?limit=5000
gunakan kode JavaScript AndaAtau
coba Grafik API :
https://graph.facebook.com/v2.3/user_id_here/taggable_friends?access_token=
sumber
Di Facebook SDK Graph API v2.0 atau lebih tinggi, Anda harus meminta izin user_friends dari setiap pengguna saat login Facebook karena user_friends tidak lagi disertakan secara default di setiap login; kita harus menambahkan itu.
Setiap pengguna harus memberikan izin kepada user_friends agar dapat muncul dalam respons terhadap / saya / teman .
Jadi pada saat login Facebook, ia meminta dengan layar yang berisi semua izin:
Jika pengguna menekan tombol Lanjutkan , izin akan ditetapkan. Saat Anda mengakses daftar teman menggunakan Graph API, teman Anda yang masuk ke aplikasi seperti di atas akan terdaftar
Output akan berisi pengguna yang memberikan izin user_friends pada saat masuk ke aplikasi Anda melalui Facebook.
sumber