API Jaringan Sosial: Portal Internet ke Dunia Nyata
Diterbitkan: 2022-03-11API jejaring sosial telah berkembang jauh sejak Google merilis versi pertama dari API YouTube pada Mei 2008 dan Facebook merilis versi pertama dari Graph API pada April 2010. Saat ini, API ini memberi Anda kesempatan untuk menanyakan platform jejaring sosial untuk posting , pengguna, saluran, dan data demografis. Mereka bahkan membiarkan Anda membuat layanan Anda sendiri atau mencari tahu lebih banyak tentang basis pengguna Anda.
Dalam artikel ini, kita akan membahas cara memanfaatkan beberapa API jejaring sosial populer:
- Facebook (API Grafik dan Pemasaran)
- Indonesia
- Youtube
Kami juga akan membahas keterbatasannya, dan menjelajahi beberapa alat berguna yang tersedia untuk digunakan dengan API ini. Nanti di artikel, kita juga akan melihat cara mengintegrasikan API ini di aplikasi Rails apa pun.
Saya akan fokus pada satu API jaringan sosial pada satu waktu dan menjelaskan kemampuan, keterbatasan, dan alat yang tersedia. Akan ada matriks dengan API yang berbeda dan propertinya untuk perbandingan yang lebih baik nanti di artikel ini.
Untuk menggunakan API, Anda harus terlebih dahulu menyiapkan aplikasi yang membuat kueri atas nama aplikasi Anda dengan permintaan berbasis OAuth. Pengguna akan mengautentikasi terhadap aplikasi Anda dan Anda kemudian dapat mengakses data mereka dengan token akses pengguna yang dihasilkan.
FQL (Facebook Query Language) yang sekarang sudah ketinggalan zaman dulunya adalah bahasa kueri seperti SQL yang dapat digunakan untuk mengakses semua data dari Facebook.
Facebook merilis versi pertama dari Graph API pada April 2010. Versi terbaru pada saat artikel ini ditulis adalah 2.6 yang diperkenalkan pada 12 April 2016. Ini adalah API berbasis HTTP tingkat rendah yang dapat digunakan untuk query data, membuat postingan, dan bahkan membuat kampanye iklan otomatis.
Peralatan
Graph API Explorer adalah alat yang paling umum digunakan saat bekerja dengan Facebook API. Ini memungkinkan Anda menjalankan kueri Graph API di browser dan memeriksa hasilnya: Anda dapat menggunakan salah satu token akses aplikasi Anda atau membuatnya dengan cepat dengan cakupan yang dipilih.
Kemampuan
Graph API adalah API berbasis REST yang memungkinkan Anda membuat, memperbarui, dan menghapus objek per permintaan HTTP pada node tertentu.
Token Akses
Untuk menjalankan kueri terhadap Graph API, Anda memerlukan token akses yang diperoleh segera setelah pengguna berhasil mengotorisasi di aplikasi Anda. Token akses harus disimpan oleh aplikasi Anda.
Lingkup
Cakupan menentukan tindakan mana yang dapat dilakukan atas nama pengguna. Aplikasi meminta cakupan tertentu saat pengguna memberi otorisasi dalam suatu aplikasi. Cakupan publish_actions , misalnya, memungkinkan aplikasi memublikasikan postingan atas nama pengguna. Cakupan email memungkinkan aplikasi membaca email pengguna. Tinjauan lengkap atas semua cakupan tercantum dalam dokumentasi resmi.
Cakupan tertentu seperti publish_actions atau ads_management memerlukan peninjauan oleh Facebook sebelum rilis aplikasi.
Contoh
Untuk mendemonstrasikan cara kerja Graph API, saya akan menunjukkan cara membaca, membuat, memperbarui, dan menghapus postingan dengan API.
Untuk mendapatkan posting Anda sendiri, Anda dapat menjalankan kueri GET /me/posts . Hasilnya akan menjadi string JSON dengan daftar posting, termasuk pesan, waktu_buatan, dan id mereka. Anda dapat menggunakan parameter pretty atau formatter JSON untuk membuat respons terlihat tidak terlalu berantakan.
Untuk mendapatkan lebih banyak data tentang posting Anda, Anda dapat memperluas kueri dengan bidang sebagai parameter kueri. Misalnya, kueri me/posts?fields=reactions, picture akan memberi Anda gambar dan reaksi kiriman.
Untuk membuat posting, Anda cukup mengirim tindakan POST terhadap umpan tepi, misalnya me/feed , dengan parameter seperti message: hello world . Graph API akan mengembalikan objek JSON dengan ID postingan yang Anda buat. Anda kemudian dapat melihat posting di alamat http://facebook.com/[post_id] .
Untuk memperbarui posting, Anda dapat mengirim permintaan POST ke node posting dengan bidang yang akan diperbarui sebagai parameter; misalnya, /[post_id] dan params seperti Message: lorem ipsum . Indikator keberhasilan dengan nilai benar atau salah akan dikembalikan.
Untuk menghapus postingan, Anda cukup membuat permintaan DELETE ke node dengan ID postingan (mis. /[post_id] ). Nilai kembalian akan menjadi objek JSON dengan nilai sukses benar atau salah.
Ikhtisar lengkap tentang semua node dan tindakan tersedia di Referensi Graph API.
API Pemasaran
API pemasaran pantas disebutkan secara khusus karena merupakan alat yang ampuh untuk mengelola iklan Facebook dan mendapatkan wawasan iklan melalui aplikasi Anda.
Ini bekerja dengan cara yang sama seperti metode Graph API lainnya. Namun, Anda memerlukan cakupan ads_management untuk mendapatkan akses ke iklan pengguna. Facebook juga perlu meninjau aplikasi Anda sebelum Anda dapat memublikasikannya.
Pengujian
Setelah Anda membuat aplikasi, aplikasi berada dalam mode pengembangan dan secara otomatis terlihat di dasbor aplikasi Anda (yaitu, https://developers.facebook.com/apps/ ).
Dalam mode pengembangan, hanya admin, pengembang, dan penguji yang memiliki akses ke aplikasi Anda. Anda dapat menambahkan penguji dan admin di bagian peran dasbor aplikasi Anda.
Proses Peninjauan
Saat menambahkan izin tertentu, Facebook perlu meninjau aplikasi Anda sebelum Anda dapat memublikasikannya. Proses peninjauan ditentukan oleh kumpulan pedoman ini.
Untuk mengirimkan item tertentu untuk ditinjau, Anda cukup menambahkannya di bagian Tinjauan Aplikasi di dasbor aplikasi Anda. Facebook kemudian akan memandu Anda melalui proses peninjauan dan Anda akan diberi tahu setelah aplikasi Anda disetujui.
Keterbatasan dan Solusi
Batas Tarif
Sebuah aplikasi dapat membuat 200 panggilan per jam per pengguna secara agregat. Jika Anda mencapai batas itu, panggilan API Anda akan menghasilkan kesalahan.
Mencari Postingan di Facebook
Facebook membatasi pencarian posting dan tag di Facebook melalui Graph API dan FQL. Namun, Anda dapat menggunakan Google Search API untuk mencari posting Facebook publik dan kemudian menggunakan post-id di URL untuk mengambil lebih banyak informasi tentang posting tertentu melalui Graph API.
Mendapatkan Data Pemirsa Khusus
Wawasan Audiens di Facebook adalah alat penelitian yang ampuh untuk mempelajari lebih lanjut tentang audiens tertentu berdasarkan minat, demografi, atau atribut lainnya (mis., kumpulan alamat email).
Namun, saya belum menemukan cara untuk membuat wawasan pemirsa secara otomatis melalui API iklan. Beri tahu kami di komentar jika Anda memiliki ide atau saran kreatif untuk ini.
Instagram API pertama kali dirilis pada April 2014 dan memungkinkan Anda membuat aplikasi yang menganalisis postingan pengguna dan membantu pengguna mengelola postingan mereka sendiri.
Peralatan
Karena konsol API oleh Instagram sudah tidak digunakan lagi pada saat artikel ini dibuat, saya sarankan menggunakan Apigee untuk tujuan pengujian di browser Anda.
Kemampuan
API Instagram adalah API berbasis REST. Semua titik akhirnya dijelaskan dalam dokumentasi resmi mereka.
Token Akses
Untuk menjalankan kueri terhadap API Instagram, Anda memerlukan token akses yang diperoleh segera setelah pengguna memberi otorisasi di aplikasi Anda. Agar pengguna menerima token akses, dia harus diarahkan ke URL otorisasi aplikasi Anda. Server kemudian akan mengarahkan ulang pengguna setelah mengotorisasi aplikasi Anda dan Anda kemudian dapat membaca token.
Lingkup
Aplikasi Anda dapat meminta izin yang berbeda. Misalnya, "dasar" membatasi Anda untuk membaca info profil dan media pengguna. “public_content” memungkinkan Anda membaca profil dan media publik apa pun atas nama pengguna.
Contoh
Untuk mendemonstrasikan cara kerja API Instagram, saya akan membahas beberapa contoh berdasarkan titik akhir media https://api.instagram.com/v1/media/popular .
Titik akhir ini mengembalikan media populer saat ini dari Instagram jika melewati token akses sebagai parameter. Hasilnya akan menjadi larik JSON posting yang berisi, untuk masing-masing, ID medianya, tautan ke gambarnya, suka, komentar, pengguna yang mempostingnya, dan beberapa atribut lainnya.
Anda dapat menggunakan apigee untuk bermain-main dan mencari tahu lebih lanjut tentang titik akhir API dan parameternya.
Pengujian
Setiap aplikasi baru yang dibuat di platform Instagram dimulai dalam mode kotak pasir. Ini adalah lingkungan yang berfungsi penuh yang memungkinkan Anda menguji titik akhir API yang tersedia untuk umum sebelum Anda mengirimkan aplikasi untuk ditinjau.
Untuk menguji aplikasi Anda, cukup buat versi staging dan jalankan semua kueri melalui versi tersebut alih-alih versi langsung yang telah melalui peninjauan.
Proses Peninjauan
Aplikasi dalam mode kotak pasir dapat menggunakan titik akhir API apa pun, tetapi dibatasi untuk sejumlah pengguna dan media terbatas. Ini adalah mekanisme yang bagus untuk mengembangkan dan menguji aplikasi.
Untuk menayangkan dan mengakses semua konten Instagram, Anda harus mengirimkan aplikasi Anda untuk ditinjau. Setelah ditinjau, Anda hanya dapat meminta cakupan untuk pengguna yang aplikasi Anda telah disetujui.
Keterbatasan dan solusi
Analisis Demografis
Pada saat artikel ini ditulis, tidak ada cara untuk mendapatkan informasi tentang usia, jenis kelamin, atau minat pengguna publik, karena Instagram tidak memberikan informasi tersebut kepada Anda.
Untuk mendapatkan data demografi tentang pengikut atau daftar pengguna Instagram, Anda perlu mengulangi semuanya dan mencoba menentukan usia dan jenis kelamin atau minat mereka berdasarkan pengikut mereka atau informasi yang diberikan di bio mereka.
Solusi data besar yang baik untuk masalah ini mungkin merupakan layanan yang berharga bagi beberapa perusahaan.
Batas Tarif
Semua batas tarif di platform Instagram dikendalikan oleh token akses pada jendela geser 1 jam. Aplikasi langsung memiliki batas kecepatan yang lebih tinggi daripada aplikasi dalam Mode Kotak Pasir. Batas tarif global untuk aplikasi langsung saat ini adalah 5.000 panggilan per jam.
Indonesia
Twitter API pertama kali dirilis pada September 2006. Ini adalah REST API publik yang menyediakan akses baca dan tulis ke data Twitter. Otentikasi dilakukan menggunakan OAuth. Tanggapan dalam format JSON.
Peralatan
Twitter memiliki alat konsol API yang didukung oleh apigee yang dapat digunakan untuk menguji permintaan di browser.
Kemampuan
REST API memungkinkan Anda mendapatkan tweet, pengikut, dan orang yang diikuti pengguna. Anda juga dapat mencari hashtag di tweet lain.
Token Akses
Twitter memungkinkan Anda membuat aplikasi yang dapat diautentikasi oleh pengguna dengan imbalan token akses. Model otentikasi adalah OAuth.
Lingkup
Hanya ada dua izin yang harus diatur di halaman pengaturan aplikasi: Hanya baca dan Baca dan Tulis. Yang terakhir memungkinkan Anda membuat tweet dan melakukan tindakan posting lainnya atas nama pengguna.
Contoh
Untuk mendemonstrasikan penggunaan Twitter API, saya akan mengambil tweet pengguna yang berwenang. Hasilnya adalah array JSON dengan gambar tweet, favorit, retweet, url, tanggal pembuatan, dan atribut lainnya. Gunakan Apigee untuk bermain-main dan mencari tahu lebih lanjut tentang titik akhir API dan parameternya.
Proses Pengujian dan Peninjauan
Saat ini tidak ada proses peninjauan atau mode pengujian yang tersedia untuk API Twitter.

Keterbatasan dan Solusi
Analisis Demografis
Saat ini tidak ada cara mudah untuk mendapatkan data demografi dari pengikut Twitter seseorang. Pendekatan brute force adalah menelusuri setiap pengikut dan mencoba mendapatkan data melalui bio dan akun jejaring sosial tertaut mereka.
Anda kemudian dapat membuat asumsi lebih lanjut berdasarkan data pengikut yang dikumpulkan melalui analisis data. Cara lain untuk mendapatkan lebih banyak wawasan adalah melalui platform API perusahaan berbayar Twitter, GNIP. Antara lain, ini memungkinkan Anda membuat audiens dan mendapatkan informasi tentang audiens tersebut melalui API. API saat ini dalam BETA.
Batas Tarif
Twitter memiliki batas tarif per pengguna dan basis 15 menit. Jika aplikasi Anda memiliki banyak token, Anda cukup mengganti token untuk operasi publik agar tidak mencapai batas.
Youtube
YouTube Data API pertama kali diperkenalkan pada Januari 2013. Ini memungkinkan Anda menambahkan fitur YouTube ke aplikasi Anda, mencari konten, dan menganalisis demografi saluran YouTube. Ini adalah OAuth, REST API berbasis token yang mengembalikan respons JSON.
Peralatan
API Explorer memungkinkan Anda menguji permintaan yang tidak sah dan resmi. Anda dapat menjalankan permintaan dari browser Anda terhadap titik akhir yang disediakan.
Kemampuan
Antara lain, Anda dapat bekerja dengan aktivitas, obrolan, siaran langsung, daftar putar, saluran, video, dan langganan. Sebagian besar titik akhir mengharuskan Anda untuk mengotorisasi dengan akun YouTube.
Token Akses
YouTube Data API mendukung protokol OAuth 2.0 untuk mengizinkan akses ke data pengguna pribadi. Setelah pengguna diotorisasi dalam aplikasi Anda, mereka akan diarahkan ke aplikasi Anda tempat token akses harus disimpan.
Untuk menggunakan otorisasi OAuth 2.0, Anda harus terlebih dahulu mendapatkan kredensial otorisasi di konsol pengembang Google.
Lingkup
API Data YouTube saat ini mendukung cakupan berikut:
- Force SSL - Kelola akun youtube Anda tetapi hanya melalui koneksi SSL.
- Bawaan - Kelola akun YouTube Anda. Cakupan ini secara fungsional identik dengan cakupan youtube.force-ssl tetapi tidak memerlukan koneksi SSL.
- Hanya Baca - Lihat akun YouTube Anda.
- Unggah - Unggah video YouTube dan kelola video YouTube Anda.
- Audit Saluran Mitra - Ambil informasi yang digunakan Jaringan Multisaluran sebagai kriteria untuk menerima atau menolak saluran di jaringan mereka.
Contoh
Sebagai contoh penggunaan Youtube Data API, permintaan permintaan berikut untuk video dengan "coding" dalam judul dan deskripsinya:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}Hasilnya adalah objek JSON yang berisi judul, deskripsi, videoId, dan channelId. Anda dapat menggunakan yang terakhir untuk mengetahui lebih lanjut tentang saluran tersebut.
Parameter part diperlukan untuk setiap permintaan API yang mengembalikan sumber daya tertentu. Parameter mengidentifikasi properti sumber daya yang harus disertakan dalam respons API. Misalnya, sumber daya video memiliki bagian berikut: snippet, contentDetails, fileDetails, player, processingDetails, recordingDetails, statistik, status, saran, topicDetails.
Semua parameter lain, kecuali kunci API, berbeda dari panggilan ke panggilan. Baca lebih lanjut tentangnya di panduan referensi API.
Pinterest API awalnya dirilis pada April 2015. Ini adalah RESTful API yang menyediakan akses ke data Pinterest pengguna, seperti papan, pin, pengikut, dan lainnya. Pinterest API menggunakan OAuth dan mengizinkan izin baca dan tulis saat berinteraksi dengan konten pengguna.
Peralatan
Seperti yang lain, Pinterest menyediakan Penjelajah API untuk menguji titik akhir mereka dan menjalankan kueri terhadap mereka. Anda dapat melihat semua alat mereka di sini.
Kemampuan
Pinterest REST API memungkinkan Anda membuat pin, papan, dan kueri data Pinterest dengan OAuth.
Token Akses
Pinterest menggunakan OAuth 2.0 untuk mengautentikasi permintaan antara aplikasi dan pengguna Anda. Semua permintaan harus dilakukan melalui HTTPS.
Lingkup
Cakupan menentukan apa yang dapat dilakukan aplikasi atas nama pengguna. Pinterest menggunakan cakupan berikut:
-
none(harus mengetahui pengenal): Gunakan metode GET pada profil pengguna, papan dan detail Pin, dan Pin di papan. -
read_public: Gunakan metode GET pada pin, papan, dan suka pengguna. -
write_public: Gunakan metode PATCH, POST, dan DELETE pada Pin dan papan pengguna. -
read_relationships: Gunakan metode GET pada pengikut dan pengikut pengguna (di papan, pengguna, dan minat). -
write_relationships: Gunakan metode PATCH, POST, dan DELETE pada pengikut dan pengikut pengguna (di papan, pengguna, dan minat).
Contoh
Untuk mendemonstrasikan penggunaan Pinterest API, saya akan mendemonstrasikan cara membaca pin terbaru pengguna:
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at akan mengembalikan pin pengguna dengan id, tautan, catatan, url, suka, dan repin.
Proses Pengujian dan Peninjauan
Aplikasi pada awalnya dalam mode pengembangan dan harus dikirim untuk ditinjau sebelum dirilis dalam mode produksi.
Keterbatasan dan solusi
Analisis Demografis
Tidak ada cara umum untuk mendapatkan data demografi dari papan. Namun, Anda dapat mencoba untuk mendapatkan pengikut dewan dan informasi tentang mereka dari bio dan tautan ke akun jejaring sosial lainnya. Solusi data besar melalui koneksi umum pengguna juga akan menjadi kemungkinan.
Cari Pin
Saat ini tidak ada cara untuk mencari pin dengan tag atau kata kunci tertentu melalui API. Anda dapat melewati batasan itu dengan menggunakan Google Custom Search API untuk mencari hasil pada pin Pinterest saja dan mengumpulkan ID pin melalui URL. ID tersebut kemudian dapat digunakan untuk mendapatkan informasi tentang pin melalui API.
Batas Tarif
Setiap aplikasi (dengan ID aplikasi unik) diizinkan 1.000 panggilan per titik akhir per jam untuk setiap token pengguna unik.
Setiap respons API mengembalikan tajuk yang memberi Anda pembaruan tentang batas kecepatan. X-Ratelimit-Limit adalah batas tarif untuk permintaan spesifik tersebut, dan X-Ratelimit-Remaining adalah jumlah permintaan yang tersisa dalam jendela 60 menit.
Jika Anda melebihi batas tarif untuk titik akhir tertentu, Anda akan mendapatkan kode kesalahan 429 "Terlalu banyak permintaan".
Perbandingan API Jaringan Sosial
| Versi: kapan | OAuth | Format | Demografi | |
|---|---|---|---|---|
| v2.6 Rilis Awal: April 2010 | OAuth 2 | Permintaan REST dengan tanggapan JSON | Didukung | |
| v1 Rilis Awal: April 2014 | OAuth 2 | Permintaan REST dengan tanggapan JSON | Tidak didukung | |
| Indonesia | v1.1 Rilis Awal: September 2006 | OAuth 1 | Permintaan REST dengan tanggapan JSON | Hanya didukung dengan GNIP |
| Youtube | v3 Rilis Awal: Januari 2013 | OAuth 2 | Permintaan REST dengan tanggapan JSON | Didukung |
| v1 Rilis Awal: April 2015 | OAuth 2 | Permintaan REST dengan tanggapan JSON | Tidak didukung |
Aplikasi Demo dengan Perangkat
Mengintegrasikan API ini ke dalam aplikasi baru atau yang sudah ada, berkat sejumlah besar paket dan pustaka API jejaring sosial, menjadi lebih mudah dari sebelumnya. Sebagian besar platform dan kerangka kerja modern memiliki pustaka pihak ketiga yang telah teruji waktu yang bahkan menyatukan aspek autentikasi semua API ini ke dalam satu pustaka dengan arsitektur plugin yang rapi.
Untuk artikel ini, kita akan melihat bagaimana Rancangan, permata Ruby, melakukan ini dengan sangat elegan untuk aplikasi Rails. Rancangan adalah perpustakaan otentikasi fleksibel berdasarkan Warden yang mengimplementasikan otentikasi, pendaftaran, login, dan penyimpanan data untuk beberapa penyedia login. Jika Anda lebih dari seorang pria front-end dan ingin memeriksa sesuatu yang serupa untuk AngularJS, lihat artikel ini.
Rancang, seperti kebanyakan perpustakaan kelas ini, tidak dilengkapi dengan dukungan untuk salah satu API jaringan sosial yang disebutkan di atas. Dukungan untuk masing-masing API jejaring sosial ini disediakan melalui permata tambahan. Permata berikut tersedia untuk otentikasi Rails yang mencakup 5 penyedia yang dibahas dalam artikel ini:
gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'Karena ini hanya menyediakan otentikasi, pendaftaran, login, dan penyimpanan untuk masing-masing penyedia tersebut, kami juga perlu mendapatkan permata berikut untuk klien API yang sebenarnya:
gem 'twitter' # https://github.com/sferik/twitter gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem gem 'koala' # (Facebook API) https://github.com/arsduo/koala gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client gem 'pinterest-api' # https://github.com/realadeel/pinterest-apiOmniauth dan Otentikasi
Agar pengguna mengotorisasi aplikasi Anda dengan penyedia Anda, Anda cukup memberikan tautan dengan jalur berikut:
omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...Untuk bereaksi pada panggilan balik setelah mengautentikasi pengguna, Anda dapat mendefinisikan OmniauthCallbacksController dengan cakupan sebagai fungsi seperti:
class AuthenticationsController < Devise::OmniauthCallbacksController def facebook if request.env["omniauth.auth"] ... end end endItu adalah tempat untuk menambahkan model Otentikasi baru dengan token dan data ke dalam aplikasi Anda:
authentication = where(provider: omniauth.provider, user_id: user.id) .first_or_create do |auth| auth.user = user auth.uid = omniauth.uid auth.secret = omniauth.credentials.secret auth.token = omniauth.credentials.token ... endMembuat Panggilan API
Berikut adalah contoh cara menggunakan Koala untuk menanyakan API Facebook. Penyedia lainnya bekerja kurang lebih sama dan didokumentasikan dalam README permata.
Inilah cara Anda mendapatkan data pengguna menggunakan Koala:
authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object("me")Anda kemudian dapat menggunakan hasil JSON yang dikembalikan oleh API. Kode sumber aplikasi demo ini tersedia di GitHub.
Bungkus
API jaringan sosial memberi Anda alat yang ampuh untuk menanyakan kumpulan data besar jaringan sosial dan mengumpulkan data besar untuk aplikasi Anda. Anda dapat membangun layanan di atas API ini atau menggunakannya untuk menyempurnakan aplikasi dan wawasan pengguna Anda sendiri.
Rails dan permata yang tersedia memudahkan pengintegrasian API ini ke dalam aplikasi Rails Anda dan mengkueri antarmuka dengan lapisan abstraksi antara aplikasi Anda dan API.
