REST untuk Salesing Travelman: Menggunakan Data Google di Salesforce.com

Lane LiaBraaten, Program Developer Google
November 2007

Pengantar

Salesforce.com dan Google menghosting aplikasi "Software as a Service" yang populer, dan kedua organisasi ini menyediakan API yang memungkinkan developer mengakses penyimpanan data dalam jumlah besar yang mendukung aplikasi ini. Selain itu, fitur-fitur tersebut mulai menarik saat kami menggabungkan kedua set API tersebut. G Suite terus digunakan dalam setelan perusahaan dan Salesforce.com telah membuat platform ekstensif untuk membuat aplikasi bisnis kustom, sehingga ada banyak peluang bagi developer (yaitu Anda) untuk menggabungkan kecanggihan Google dan Salesforce.com.

Artikel ini akan menunjukkan cara menggunakan RESTful Google Data API untuk mulai membuat mashup perusahaan, meskipun Anda baru mulai menggunakan platform Salesforce.com atau protokol Data Google. Saya akan membantu Anda menyiapkan lingkungan pengembangan, menginstal Salesforce.com dan mashup Google yang ada, lalu menulisnya sendiri.

Halo, Salesforce.com!

Jika Anda adalah pemula di Salesforce.com, saya harus mulai dengan mendaftar untuk akun developer di ADN, Apex Developer Network. Akun developer memberi Anda akun Salesforce.com berfitur lengkap, plus akses ke wiki Apex dan forum diskusi.

Selanjutnya, Anda akan mendapatkan Apex Toolkit untuk Eclipse. Toolkit ini memerlukan Java 1.5 dan Eclipse 3.2.2, atau yang lebih baik. Jika Anda terbiasa menggunakan Eclipse, situs update software untuk toolkit ini adalah http://www.adnsandbox.com/eclipsetoolkit/10.0/. Jika Anda tidak terbiasa dengan plugin Eclipse, atau ada yang salah selama pemasangan Anda, wiki Apex menyertakan petunjuk pemasangan detail.

Setelah toolkit diinstal, Anda dapat mengakses konten bantuan Apex yang terintegrasi ke dalam sistem Bantuan Eclipse. Di Eclipse, buka Help | Content Help | Apex Toolkit for Eclipse untuk melihat konten ini. Salah satu referensi bantuan adalah tutorial panduan memulai yang akan menunjukkan cara membuat project baru dan menambahkan S-Control, class, dan pemicu. Jika belum pernah bekerja dengan kode Apex, Anda harus mempelajari tutorial ini dan membuat project Apex sebelum melanjutkan.

Mengekspor acara ke Google Kalender

Ron Hess menulis aplikasi Google Kalender Mash-up yang memungkinkan Anda mengekspor acara dari Salesforce.com ke Google Kalender. Roni juga menulis artikel yang menjelaskan cara kerja mashup-nya. Aplikasi Google Spreadsheet yang akan saya tunjukkan kepada Anda cara pembuatannya nanti akan dimodelkan setelah mash Google Kalender Google. Terima kasih, Ron!

Jika Anda adalah pengguna super Salesforce.com, Anda dapat mengintegrasikan dan menggunakan aplikasi Google Kalender Ron tanpa petunjuk apa pun. Awalnya saya butuh sedikit bantuan, jadi ini yang saya lakukan untuk melihat aplikasi Ron beraksi.

  1. Instal aplikasi:
    • Buka halaman mash-up Google Kalender dan klik Dapatkan Sekarang.
    • Masukkan kredensial ADN, lalu klik Continue.
    • Baca Persyaratan & amp; Ketentuan, lalu klik Lanjutkan.
    • Klik Next di halaman "Periksa isi paket".
    • Pilih tingkat keamanan, lalu klik Next.
    • Klik Instal.
  2. Mengonfigurasi proxy AJAX Salesforce.com
    • Di menu "Penyiapan Administrasi", klik Kontrol Keamanan | Setelan Situs Jarak Jauh.
    • Klik Situs Jarak Jauh Baru.
    • Masukkan Google sebagai "Nama Situs Jarak Jauh" dan untuk "URL Situs Jarak Jauh", gunakan https://www.google.com.
    • Klik Simpan.
  3. Tambahkan tombol "Tambahkan ke Google" ke halaman Detail Acara:
    • Di menu "Penyiapan Aplikasi", klik Sesuaikan | Aktivitas | Tata Letak Halaman Peristiwa.
    • Klik Edit di baris "Tata Letak Peristiwa".
    • Klik dua kali area "Tombol Halaman Detail".
    • Tandai "Tambahkan ke Google" dan klik panah kanan (>) untuk menambahkan tombol.
    • Klik OK.
    • Klik Simpan di halaman "Properti Tata Letak Halaman".
  4. Mengekspor peristiwa
    • Klik Beranda di kiri atas, untuk melihat kalender Anda.
    • Jika Anda tidak memiliki acara, klik New Event untuk membuat acara.
    • Klik peristiwa untuk melihat halaman Detail Peristiwa.
    • Klik tombol Tambahkan ke Google.
    • Klik OK melalui pemberitahuan JavaScript
    • Login dengan nama pengguna dan sandi Google Anda.
    • Klik Berikan akses untuk memberi akses kepada aplikasi SalesForce akses ke Google Kalender Anda.
    • Melihat acara di Google Kalender

Membuat aplikasi Google Spreadsheet

Oke, Anda mungkin sudah lelah mengklik halaman Salesforce.com dan siap menulis kode. Aktifkan kembali Eclipse dan Anda akan melihat bahwa project Apex yang Anda buat sekarang berisi S-Controls untuk aplikasi Google Kalender Ron. Ini karena Apex Toolkit untuk Eclipse terus disinkronkan dengan Salesforce.com-cukup keren, kan?

Anda dapat membuat aplikasi Data Google sendiri menggunakan kembali beberapa fungsi Mash-up Google Kalender, seperti kontrol autentikasi. Di bagian selanjutnya, saya akan menunjukkan cara membuat aplikasi yang mengekspor kontak Salesforce.com ke Google Spreadsheet.

Memublikasikan S-Control sederhana

S-Control adalah file yang dihosting oleh Salesforce.com dan dieksekusi di browser web saat pengguna mengakses aplikasi Anda. S-Control dapat berisi jenis konten apa pun yang dapat Anda tampilkan atau jalankan di browser web, seperti HTML, CSS, atau JavaScript.

Ada beberapa bagian yang bergerak di Salesforce.com dan Google mashup, jadi hal pertama yang saya lakukan adalah menambahkan tombol "Ekspor ke Google" ke halaman daftar kontak yang memanggil S-Control sederhana hanya untuk memastikan semua saluran benar sebelum lutut JavaScript.

Di project Apex, klik kanan folder "S-Controls" dan pilih Apex | New S-Control. Beri S-Control label dan nama export_contacts baru, biarkan jenis sebagai HTML Kustom dan klik Selesai.

S-Control baru akan berisi file HTML kerangka. Anda akan menambahkan sekumpulan JavaScript di <head>, tetapi Anda dapat mengisi <body> terlebih dahulu, hanya agar ada sesuatu untuk ditampilkan kepada pengguna saat kontak diekspor. Salin HTML ini ke bagian isi S-Control untuk menampilkan "titik tunggu" dan logo Google Spreadsheet:

<div id="waiting" align="center" />
  <img src="/img/icon/home32.png" height="64" width="64" />
  <img src="/img/waiting_dots.gif" alt="Please wait..." title="Please wait..." height="25" width="196" />
  <img src="http://docs.google.com/images/doclist/logo_docs.gif" />
  <p><h3>Exporting contacts to Google Spreadsheets, please wait...</h3></p>

</div>

Sekarang Anda bisa memublikasikan S-Control dan menyiapkan tombol yang akan memanggilnya.

  1. Gunakan Eclipse untuk memublikasikan file S-Control:
    • Klik kanan project Apex dan pilih Apex | Sync with Salesforce.
    • Temukan S-Control baru Anda di hierarki direktori, klik kanan, lalu pilih Override remote and publish to server.
    • Jika Anda tidak dapat menemukan S-Control, Toolkit Apex mungkin telah menguploadnya untuk Anda, tetapi sebaiknya gunakan perspektif sinkronisasi untuk memastikan bahwa kode terbaru berjalan di server.
  2. Gunakan UI Salesforce.com untuk menentukan tombol yang akan memanggil S-Control ini:
    • Di menu "Penyiapan Aplikasi", klik Sesuaikan | Kontak | Tombol dan Link.
    • Di bagian "Custom Buttons and Links", klik New.
    • Masukkan Export to Google untuk label, dan tetap gunakan Export_to_Google sebagai nama.
    • Pilih "Tombol Daftar" sebagai Jenis Tampilan.
    • Pilih "S-Control Kustom" sebagai Sumber Konten.
    • Pilih "Tampilkan di jendela yang ada dengan sidebar" sebagai Perilaku.
    • Pilih "nama_ekspor" dari menu Kontrol S Kustom.
  3. Tambahkan tombol ke daftar kontak:
    • Di menu "Penyiapan Aplikasi", klik Sesuaikan | Kontak | Tata Letak Penelusuran.
    • Klik Edit di baris "Tampilan Daftar Kontak".
    • Tandai "Ekspor ke Google" dan klik tanda panah kanan (>) untuk menambahkan tombol.
    • Klik Simpan.
  4. Lakukan uji jalan:
    • Klik tab Contacts.
    • Pilih "All Contacts" sebagai Tampilan dan klik Go!.
    • Klik tombol Ekspor ke Google baru yang berkilau.
    • Perhatikan "waiting_dots" tetapi jangan mengharapkan hal lainnya terjadi.

Berinteraksi dengan Google Spreadsheet

Jika melihat sumber untuk Mash-up Google Kalender, Anda akan melihat bahwa file gcal_snippet.scf berisi abstraksi untuk server Google Kalender. Untuk berinteraksi dengan Google Spreadsheet, Anda harus membuat file yang serupa dengan server Google Spreadsheet. Saya menggunakan kembali kode Ron Hess untuk menggunakan proxy AJAX Salesforce.com dan mengautentikasi dengan Google AuthSub dan mengganti fungsi yang menulis acara ke Google Kalender dengan fungsi yang menulis informasi ke Google Spreadsheet. Sumber lengkap file ini tersedia di gspreadsheet_snippet.scf.

Selanjutnya, saya menambahkan JavaScript ke S-Control export_contacts.scf untuk meminta informasi kontak di Salesforce.com dan menulisnya ke Google Spreadsheet. Mendapatkan data dari Salesforce.com itu mudah. Cukup buat kueri dan sediakan fungsi callback yang akan dieksekusi saat data ditampilkan. Contoh:

  var query = 'Select FirstName, LastName, Phone From Contact';
  var queryResult = sforce.connection.query(query, queryCallback);

Setelah Anda memiliki informasi kontak dari Salesforce.com, Anda harus mengetahui tempat untuk mengekspornya. Dalam protokol Data Google RESTful, setiap spreadsheet dapat diidentifikasi dengan URL yang unik. Anda dapat memperoleh daftar spreadsheet pengguna (dan URL terkait) dengan membuat kueri URL metafeed: http://spreadsheets.google.com/feeds/spreadsheets/private/full. Metode berikut melakukan iterasi melalui spreadsheet ini, yang mencari spreadsheet dengan judul tertentu. Setelah menemukan spreadsheet yang benar, spreadsheet akan mendapatkan daftar lembar kerja terlebih dahulu, lalu menampilkan URL feed sel untuk lembar kerja pertama.

function getCellFeedUrl() {
  var SPREADSHEET_TITLE = 'Salesforce.com Contacts';
  var WORKSHEET_REL = 'http://schemas.google.com/spreadsheets/2006#worksheetsfeed';
  var CELLSFEED_REL = 'http://schemas.google.com/spreadsheets/2006#cellsfeed';

  // Query to find the spreadheet called "Salesforce.com Contacts"
  var spreadsheets = g.getFeed('http://spreadsheets.google.com/feeds/spreadsheets/private/full');
  var entries = g.getEntryList(spreadsheets);
  for (var e in entries) {
    if (g.getTitle(entries[e]) == SPREADSHEET_TITLE) {
      var worksheetsFeedUrl = g.link(entries[e],WORKSHEET_REL);
      var worksheets = g.getFeed(worksheetsFeedUrl);
      var worksheetEntries = g.getEntryList(worksheets);
      return g.link(worksheetEntries[0], CELLSFEED_REL);
    }
  }
}

Informasi selengkapnya tentang feed yang tersedia di API data Google Spreadsheet dapat ditemukan di Panduan Referensi.

Fungsi queryCallback menggunakan metode getCellFeedUrl untuk menemukan URL feed sel yang diperlukan untuk mengirim permintaan pembaruan sel, lalu menulis informasi kontak sel pada satu waktu.

function queryCallback(queryResult) {
  var cellFeedUrl = getCellFeedUrl();
  var contacts = queryResult.getArray('records');
  for (var i=0; i<contacts.length; i++) {
    g.updateCell(cellFeedUrl, i+1, 1, contacts[i].LastName + ", " + contacts[i].FirstName);
    g.updateCell(cellFeedUrl, i+1, 2, contacts[i].Phone);
  }
  
  jumpback(); // Return to the contacts page when your done
}

Metode updateCell ada di S-Control gspreadsheet_snippet.scf. Metode tersebut akan mendapatkan URL edit sel di baris dan kolom tertentu, lalu mengirim pesan PUT HTTP yang berisi representasi Data Google dari sel yang diperbarui:

GoogleSpreadsheet.prototype.updateCell = function(cellsFeedUrl, row, column, content ) {
  var cellEntry = this.getFeed(cellsFeedUrl+'/R'+row+'C'+column);
  var cellEditUrl = this.link(cellEntry,'edit');

  var newCellEntry = "<atom:entry xmlns:atom='http://www.w3.org/2005/Atom'>" +
      "<atom:category scheme='http://schemas.google.com/spreadsheets/2006' " +
      "term='http://schemas.google.com/spreadsheets/2006#cell' />" +
      "<gs:cell xmlns:gs='http://schemas.google.com/spreadsheets/2006' " +
      "row='" + row + "' col='" + column + "' inputValue='" + content + "' />" +
      "</atom:entry>";

  this.putEntry(cellEditUrl, newCellEntry);
} 

Informasi selengkapnya tentang cara memperbarui sel dengan Google Spreadsheet Data API dapat ditemukan di Panduan Developer.

API data Google Spreadsheet menggunakan subdomain https://spreadsheets.google.com, jadi sebelum kode di atas berfungsi, Anda harus mengonfigurasi server proxy AJAX Salesforce.com dan menambahkan https://spreadsheets.google.com.

Anda juga harus membuka Google Dokumen dan membuat spreadsheet baru untuk menyimpan data. Pastikan Anda menyimpannya sebagai Kontak Salesforce.com.

Setelah Anda mengupload kontrol S ini, Anda dapat mengekspor informasi kontak Anda ke spreadsheet Google. Bagaimana jika sebaliknya? Dengan pengetahuan baru Anda tentang Salesforce.com dan API Data Google, Anda juga dapat menulis beberapa kode untuk mengimpor informasi kontak dari Google Spreadsheet ke Salesforce.com.

Kesimpulan

Artikel ini baru saja menjelaskan secara keseluruhan, tetapi sekarang Anda telah memahami platform Salesforce.com dan Google Data API, pikirkan semua aplikasi yang dapat Anda tulis untuk memanfaatkan sistem yang canggih ini. Rangkaian API Data Google selalu bertambah dan mengekspos lebih banyak informasi untuk Anda manfaatkan dalam aplikasi Anda, serta platform Salesforce.com menawarkan banyak alat berguna yang tidak dibahas dalam artikel ini. Saya akan mencari mashup perusahaan Anda berikutnya di AppApp.

Selamat membuat kode!

Resource