3
Pada bulan Disember 2011, Facebook secara rasmi melepaskan API REST dan melancarkan API Grafik untuk kegunaan awam. Sejak itu, semua ciri baru telah ditambahkan ke API Grafik dan Facebook telah membolehkan pengguna melakukan banyak perkara baru, beberapa yang akan dibincangkan hari ini. Dalam jawatan ini, kami akan membuat banyak permintaan kepada API Grafik, menerima respons JSON, dan dengan itu memanipulasi mereka untuk mendapatkan hasil yang dikehendaki.
Akses ke API Grafik memerlukan token akses, yang unik untuk gabungan pengguna atau halaman log masuk dan aplikasi Facebook yang membuat permintaan. Token ini menyediakan akses sementara dan selamat ke Facebook.
Pada masa-masa kebelakangan ini, organisasi kecil dan up-dan-akan datang telah menggunakan halaman Facebook dengan berkesan untuk mempromosikan kandungan mereka. Namun, mendapat 'suka' dan dengan itu, meningkatkan jangkauan anda, adalah proses yang perlahan dan mantap. Ramai beralih ke iklan Facebook untuk tujuan ini. Ramai yang lain, bagaimanapun, mengambil alternatif yang lebih murah - dengan menganjurkan pertandingan melalui halaman mereka.
Peraduan biasa melibatkan menyiarkan foto atau perenggan pada halaman mengenai pengalaman. Peraduan ini dinilai berdasarkan bilangan 'suka' pada jawatan atau foto. Terdapat juga syarat tambahan untuk menyertai pertandingan ini. Untuk 'suka' sah, pengguna juga perlu menyukai halaman tersebut. Facebook tidak mempunyai ciri terbina dalam yang memberitahu anda berapa banyak suka yang biasa dengan siaran dan halaman anda. Yang membuat menilai pertandingan sukar.
Bukan pengatur akan merasakan bahawa satu-satunya cara untuk menilai pertandingan ini adalah dengan menyemak jumlah suka secara manual. Nasib baik, API Grafik membantu kita melakukan tindakan ini tanpa banyak kerumitan.
Walaupun saya akan melakukan tindakan melalui Python, prosesnya tetap sama untuk bahasa lain. Bahagian penting ialah URL sasaran yang kami hantar permintaan dan data yang kami dapat dari JSON yang diterima.
Cara mudah konseptual untuk melakukan ini adalah untuk mendapatkan senarai suka pada jawatan dan senarai suka pada halaman dan kemudian membandingkannya. Walau bagaimanapun, tidak ada fungsi di Facebook yang mendapat senarai suka pada halaman sehingga sekarang. Kami akan menggunakan proses terbalik untuk memeriksa sama ada masing -masing seperti pada jawatan suka halaman juga.
Panggilan berikut memeriksa sama ada pengguna suka halaman atau tidak. Dokumentasi terperinci boleh didapati di sini.
GET <span>/{user-id}/likes/{page-id}</span>
Jika pengguna suka halaman, respons JSON mengandungi data mengenai halaman, tetapi jika pengguna tidak menyukai halaman tersebut, data kosong diterima. Kami menggunakan fungsi berikut untuk menentukan sama ada pengguna suka halaman atau tidak.
<span>def user_likes_page(user_id, page_id): </span> <span>""" </span><span> Returns whether a user likes a page </span><span> """ </span> url <span>= 'https://graph.facebook.com/%d/likes/%d/' % (user_id, page_id) </span> parameters <span>= {'access_token': TOKEN} </span> r <span>= requests.get(url, params = parameters) </span> result <span>= json.loads(r.text) </span> <span>if result['data']: </span> <span>return True </span> <span>else: </span> <span>return False</span>
Langkah seterusnya adalah untuk mendapatkan senarai suka untuk jawatan tertentu dan mengetahui sama ada pengguna suka halaman itu juga. Panggilan berikut memberi kita senarai suka untuk jawatan, dengan syarat kami mempunyai akses yang betul.
GET <span>/{post-id}/likes/</span>
Menggabungkan dua idea, kami membuat fungsi berikut untuk memeriksa berapa banyak suka dalam jawatan yang biasa di halaman juga.
<span>def get_common_likes(post_id, page_id): </span> <span>""" </span><span> Returns the number of likes common to a post and the page </span><span> """ </span> count_likes <span>= 0 </span> url <span>= 'https://graph.facebook.com/%d/likes/' % post_id </span> parameters <span>= {'access_token': TOKEN} </span> r <span>= requests.get(url, params = parameters) </span> result <span>= json.loads(r.text) </span> <span>for like in result['data']: </span> <span>if user_likes_page(int(like['id']), page_id): </span> count_likes <span>+= 1 </span> <span>print 1 </span> <span>return count_likes</span>
Pada hari lahir anda, saya pasti anda mendapat beratus -ratus (jika tidak beribu -ribu) jawatan. Menjawab masing -masing adalah membosankan! Ramai orang meletakkan status mengucapkan terima kasih kepada semua orang atas hasrat mereka, sementara yang lain lebih suka mengucapkan terima kasih kepada setiap orang secara peribadi. Mari kita lihat bagaimana kita boleh memilih pilihan peribadi dan melakukannya dalam masa yang singkat.
Panggilan untuk mendapatkan suapan untuk pengguna atau halaman adalah seperti berikut.
GET <span>/{user-id}/feed</span>
Sekiranya anda ingin mendapatkan jawatan pada garis masa anda, anda boleh menggantikan {user-id} dengan 'saya', yang menjadikan proses kelihatan lebih mudah. Untuk memanipulasi beratus -ratus dan beribu -ribu jawatan, anda tidak akan dapat mendapatkannya dalam satu halaman. Anda perlu melangkah ke hadapan dan periksa URL seterusnya dalam tindak balas JSON.
Fungsi yang mendapat semua jawatan pada garis masa anda adalah seperti berikut.
<span>def get_posts(): </span> <span>""" </span><span> Returns the list of posts on my timeline </span><span> """ </span> parameters <span>= {'access_token': TOKEN} </span> r <span>= requests.get('https://graph.facebook.com/me/feed', params=parameters) </span> result <span>= json.loads(r.text) </span> <span>return result['data']</span>
Langkah seterusnya adalah untuk menerbitkan komen pada garis masa anda. Panggilan yang digunakan untuk melakukan tindakan ini adalah seperti berikut.
POST <span>/{object-id}/comments</span>
Komen hendaklah dihantar sebagai mesej dalam permintaan pos di atas. Oleh itu, fungsi yang kami gunakan untuk memberi komen pada jawatan adalah seperti berikut.
<span>def comment_on_posts(posts): </span> <span>"""Comments on all posts""" </span> <span>for post in posts: </span> url <span>= 'https://graph.facebook.com/%s/comments' % post['post_id'] </span> message <span>= 'Commenting through the Graph API' </span> parameters <span>= {'access_token': TOKEN, 'message': message} </span> s <span>= requests.post(url, data = parameters)</span>
skrip yang saya gunakan untuk kedua -dua ini boleh didapati di GitHub. Di samping itu, anda boleh mengambil satu langkah lebih jauh dengan membuat permintaan API berganda pada masa yang sama.
Akshit Khurana, di Quora, membincangkan pendekatan lain untuk ini melalui penggunaan bahasa pertanyaan Facebook (FQL). FQL adalah bahasa seperti SQL yang membolehkan anda menanyakan data yang anda terima melalui API Grafik. Terdapat senarai jadual, masing -masing dengan senarai lajurnya sendiri yang boleh dipersoalkan, dengan itu membantu anda menapis data anda.
Facebook telah bekerja keras sejak pelancaran API graf dan ciri -ciri baru ditambahkan kepadanya dengan kerap. Jika anda merancang untuk bekerja di aplikasi mudah alih atau web yang dikaitkan dengan Facebook, penggunaan API graf adalah suatu keharusan. Facebook juga mengekalkan dokumentasi yang luas, yang menerangkan secara terperinci ciri -ciri dan pelbagai kegunaan API graf.
Bagaimana saya boleh menggunakan API Grafik Facebook? Token ini digunakan untuk membuat permintaan API bagi pihak pengguna. API didasarkan pada HTTP, jadi anda boleh menggunakannya dengan mana -mana bahasa yang mempunyai perpustakaan HTTP, seperti curl. Graf API menyediakan pemaju dengan alat yang berkuasa untuk mengakses dan memanipulasi pelbagai data di Facebook. Ia membolehkan anda mengintegrasikan aplikasi atau laman web anda dengan Facebook untuk mencapai berbilion pengguna. Anda boleh membaca, menulis, dan mengemas kini objek Facebook melalui API, menjadikannya alat yang serba boleh untuk integrasi media sosial. API adalah alat yang berkuasa, ia mempunyai beberapa batasan. Sebagai contoh, tidak semua data boleh diakses melalui API. Sesetengah data pengguna adalah peribadi dan tidak boleh diakses tanpa kebenaran eksplisit pengguna. Di samping itu, kadar API mengehadkan bilangan panggilan aplikasi yang boleh dibuat. atau kegagalan permintaan API. Dalam kes ralat, API mengembalikan objek JSON dengan kod ralat dan mesej yang menerangkan ralat. Anda harus melaksanakan pengendalian ralat dalam kod anda untuk menangani situasi ini.
Bagaimana saya dapat memastikan keselamatan penggunaan API grafik Facebook saya? Penggunaan API, anda harus sentiasa menggunakan sambungan yang disulitkan (HTTPS), tidak pernah memasukkan token akses anda dalam kod sisi klien, dan mengkaji semula dan mengemas kini keizinan aplikasi anda. API Graf Facebook untuk mengakses data dari halaman Facebook?
Atas ialah kandungan terperinci 2 perkara sejuk yang boleh anda lakukan dengan API Grafik Facebook. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!