Panduan Developer: JavaScript

Blogger Data API memungkinkan aplikasi klien melihat dan memperbarui konten Blogger dalam bentuk feed Google Data API.

Aplikasi klien Anda dapat menggunakan Blogger Data API untuk membuat postingan blog baru, mengedit atau menghapus postingan blog yang ada, dan membuat kueri untuk postingan blog yang cocok dengan kriteria tertentu.

Selain memberikan beberapa latar belakang tentang kemampuan Blogger Data API, dokumen ini memberikan contoh interaksi Data API dasar menggunakan library klien JavaScript. Jika Anda tertarik untuk memahami lebih lanjut protokol dasar yang digunakan library, lihat bagian Protokol dalam panduan developer ini.

Daftar Isi

Audiens

Dokumen ini ditujukan bagi programmer yang ingin menulis aplikasi klien JavaScript yang dapat berinteraksi dengan Blogger. Library ini menyediakan serangkaian contoh interaksi Data API dasar menggunakan library klien JavaScript.

Untuk informasi referensi Blogger Data API, lihat Panduan referensi protokol. Dokumen ini mengasumsikan bahwa Anda memahami ide umum di balik protokol Google Data API serta model data dan alur kontrol yang digunakan oleh library klien JavaScript. Tutorial ini juga mengasumsikan bahwa Anda tahu cara memprogram dalam JavaScript.

Untuk informasi referensi tentang class dan metode yang disediakan oleh library klien, lihat referensi API library klien JavaScript.

Dokumen ini dirancang untuk dibaca secara berurutan; setiap contoh dibuat berdasarkan contoh sebelumnya.

Persyaratan penggunaan

Anda setuju untuk mematuhi Persyaratan Penggunaan Library Klien Google JavaScript saat menggunakan library klien JavaScript.

Tentang lingkungan yang didukung

Saat ini kami hanya mendukung aplikasi klien JavaScript yang berjalan di halaman web dalam browser. Browser yang saat ini didukung adalah Firefox 1.5 dan versi yang lebih tinggi, serta Internet Explorer 6.0 dan versi yang lebih tinggi.

Library klien JavaScript menangani semua komunikasi dengan server layanan. Jika Anda seorang developer JS berpengalaman, Anda mungkin berpikir, "tetapi bagaimana dengan kebijakan asal yang sama?" Library klien JavaScript memungkinkan klien Anda mengirim permintaan Google Data API dari domain mana pun sambil tetap mematuhi model keamanan browser.

Memulai

Sebelum dapat menulis aplikasi klien JavaScript, Anda perlu melakukan beberapa penyiapan untuk mendapatkan library.

Membuat akun Blogger

Sebaiknya Anda mendaftar ke akun Blogger untuk tujuan pengujian. Blogger menggunakan Akun Google, jadi jika Anda sudah memiliki akun Google, berarti Anda sudah siap.

Mendapatkan library

Sebelum dapat menggunakan library klien, klien harus meminta kode library klien dari server.

Mulai dengan menggunakan tag <script> di bagian <head> pada dokumen HTML Anda untuk mengambil loader Google AJAX API:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

Untuk mendapatkan library klien Google Data API setelah mengambil loader, gunakan baris berikut dalam kode penyiapan JavaScript Anda, yang harus dipanggil dari bagian <head> dokumen HTML Anda (atau dari file JavaScript yang disertakan menggunakan tag <script> di bagian <head> pada dokumen HTML Anda):

google.load("gdata", "1.x");

Parameter kedua untuk google.load() adalah nomor versi library klien JavaScript yang diminta.Skema penomoran versi kami dimodelkan berdasarkan yang digunakan oleh Google Maps API. Berikut beberapa kemungkinan nomor versi dan artinya:

"1"
Revisi kedua hingga terakhir dari versi utama 1.
"1.x"
Revisi terbaru dari versi utama 1.
"1.s"
Revisi stabil terbaru dari versi utama 1. Terkadang kami akan menyatakan versi library klien tertentu sebagai "stabil", berdasarkan masukan yang kami terima dari developer. Namun, versi tersebut mungkin tidak memiliki fitur terbaru.
"1.0", "1.1", dll.
Versi library tertentu, dengan nomor revisi utama dan minor yang ditentukan.

Setelah memanggil google.load(), Anda harus memberi tahu loader untuk menunggu hingga halaman selesai dimuat, lalu memanggil kode Anda:

google.setOnLoadCallback(getMyBlogFeed);

Dengan getMyBlogFeed() adalah fungsi yang akan kita tentukan di bagian selanjutnya dari dokumen ini. Gunakan pendekatan ini, bukan memiliki pengendali onload yang dilampirkan ke elemen <body>.

Mengautentikasi ke layanan Blogger

Anda dapat mengakses feed publik dan pribadi menggunakan Blogger Data API. Feed publik tidak memerlukan otentikasi, tetapi bersifat hanya baca. Jika ingin memodifikasi blog, klien Anda harus melakukan autentikasi sebelum meminta feed pribadi.

Library klien JavaScript menggunakan sistem autentikasi AuthSub. Untuk mengetahui informasi selengkapnya tentang autentikasi dengan Google Data API secara umum, lihat dokumentasi autentikasi.

Autentikasi proxy AuthSub

Autentikasi proxy AuthSub digunakan oleh aplikasi web yang perlu mengautentikasi penggunanya ke Akun Google. Operator situs dan kode klien tidak memiliki akses ke nama pengguna dan sandi pengguna Blogger. Sebagai gantinya, klien memperoleh token AuthSub khusus agar klien dapat bertindak atas nama pengguna tertentu.

Berikut adalah ringkasan singkat tentang hal yang terjadi selama proses autentikasi untuk klien JavaScript berbasis web:

  1. Aplikasi klien memanggil metode google.accounts.user.login() yang disediakan oleh library klien, dan meneruskan nilai "scope" yang menunjukkan layanan Google yang akan digunakan. Untuk Blogger, cakupannya adalah "http://www.blogger.com/feeds/".
  2. Library klien mengirimkan browser ke halaman "Permintaan Akses" Google, tempat pengguna dapat memasukkan kredensial untuk login ke layanan.
  3. Jika pengguna berhasil login, sistem AuthSub akan mengirimkan browser kembali ke URL klien web, dengan meneruskan token autentikasi.
  4. Library klien JavaScript menyimpan token dalam cookie dan menampilkan kontrol ke fungsi aplikasi klien yang memanggil google.accounts.user.login().
  5. Jika selanjutnya aplikasi klien memanggil metode library klien yang berinteraksi dengan Blogger, library klien akan secara otomatis melampirkan token ke semua permintaan.

Catatan: Agar library klien JavaScript dapat membuat permintaan Blogger yang diautentikasi di browser web, halaman Anda harus berisi gambar yang dihosting di domain yang sama dengan halaman Anda. Dapat berupa gambar apa pun, bahkan gambar transparan satu piksel, tetapi harus ada gambar di halaman. Jika ingin gambar tidak muncul di halaman, Anda dapat menggunakan atribut style dari tag <img> untuk memosisikan gambar di luar area rendering. Contoh: style="position:absolute; top: -1000px;"

Berikut adalah kode aplikasi klien yang menangani proses login. Kita akan memanggil fungsi setupMyService() dari kode lain nanti.

function logMeIn() {
  scope = "http://www.blogger.com/feeds/";
  var token = google.accounts.user.login(scope);
}

function setupMyService() {
  var myService =
    new google.gdata.blogger.BloggerService('exampleCo-exampleApp-1');
  logMeIn();
  return myService;
}

Tips: Sebaiknya Anda menyediakan tombol login atau mekanisme input pengguna lainnya untuk meminta pengguna memulai proses login secara manual. Sebagai gantinya, jika Anda memanggil google.accounts.user.login() segera setelah dimuat, tanpa menunggu interaksi pengguna, hal pertama yang akan dilihat pengguna saat tiba di halaman Anda adalah halaman login Google. Jika pengguna memutuskan untuk tidak login, Google tidak akan mengarahkan mereka kembali ke halaman Anda. Jadi, dari sudut pandang pengguna, mereka mencoba mengunjungi halaman Anda, tetapi ditolak dan tidak pernah dikirim kembali. Skenario ini mungkin membingungkan dan menyulitkan pengguna. Dalam kode contoh dalam dokumen ini, kita akan memanggil google.accounts.user.login() segera setelah dimuat, agar contoh tetap sederhana, tetapi kami tidak merekomendasikan pendekatan ini untuk aplikasi klien di dunia nyata.

Perhatikan bahwa Anda tidak perlu melakukan apa pun dengan variabel bernama token. Library klien melacak token, sehingga Anda tidak perlu melakukannya.

Catatan: Saat Anda membuat objek BloggerService baru, library klien akan memanggil metode bernama google.gdata.client.init(), yang memeriksa apakah browser tempat klien berjalan didukung. Jika terjadi error, library klien akan menampilkan pesan error kepada pengguna. Jika ingin menangani sendiri error semacam ini, Anda dapat memanggil google.gdata.client.init(handleInitError) secara eksplisit sebelum membuat layanan, dengan handleInitError() sebagai fungsi Anda. Jika error init terjadi, fungsi Anda akan menerima objek Error standar. Anda dapat melakukan apa pun yang diinginkan dengan objek tersebut.

Token tersebut tetap valid hingga Anda mencabutnya dengan memanggil google.accounts.user.logout():

function logMeOut() {
  google.accounts.user.logout();
}

Jika Anda tidak memanggil logout(), cookie yang menyimpan token akan berlaku selama dua tahun, kecuali jika pengguna menghapusnya. Cookie tersebut disimpan di seluruh sesi browser, sehingga pengguna dapat menutup browser, lalu membukanya kembali dan kembali ke klien Anda, dan pengguna tersebut akan tetap login.

Namun, ada keadaan tidak biasa tertentu ketika token dapat menjadi tidak valid selama sesi. Jika Blogger menolak token, klien Anda harus menangani kondisi error tersebut dengan memanggil logout() untuk menghapus cookie yang berisi token saat ini, lalu memanggil login() lagi untuk mendapatkan token baru yang valid.

Ada dua metode AuthSub lainnya yang mungkin berguna bagi Anda dalam berbagai konteks:

  • google.accounts.user.checkLogin(scope) memberi tahu Anda apakah browser saat ini memiliki token autentikasi untuk cakupan tertentu atau tidak.
  • google.accounts.user.getInfo() memberikan informasi mendetail tentang token saat ini, untuk penggunaan proses debug.

Untuk mengetahui detail tentang cara menggunakan JavaScript untuk berinteraksi dengan AuthSub, termasuk informasi tentang pengelolaan token serta cara checkLogin() dan getInfo(), baca dokumen Menggunakan Autentikasi "AuthSub" dengan Library Klien JavaScript.

Kembali ke atas