2022/03/8

Salesforce「Canvas SDK」とは?基本となる「XHR」から解説!

 
  

XHRとは?

XHRとは、XMLHttpRequestの略で、JavaScriptなどウェブブラウザ搭載のスクリプト言語でサーバとHTTP通信を行う際に利用する組み込みオブジェクト(API)です。 XMLHttpRequest(XHR)は、Webサーバから一度データを読み込んだ後でもHTTPリクエストを発することができるAjax(非同期通信)の中心となる技術で、これにより、ページをリロードすることなくページ内容の変更が可能となります。 名前に「XML」と入っていますが、XMLに限定されるものではなく、HTTPリクエストを投げてテキスト形式、もしくはDOMノードでレスポンスを受け取る、という機能を持っています。 XHRを利用したデータの送受信は今のWebサービスにとっては不可欠なものとなっています。具体的には、GoogleマップやFacebookなどが、このXHRの技術を利用しています。 Salesforceでも、キャンバスアプリケーションから「クロスドメインXHR」と呼ばれるXHRを利用して、Salesforceアプリの機能を拡張できるようになっています。

XHRの安全性

これまでにも、「JSONP(JSON with padding)」と呼ばれる、XHRと同じような仕組みを持つものがありましたが、安全性の面で問題を抱えていました。 JSONを呼び出すと、コールバック関数を用いてJSONデータを処理するようになっていますが、攻撃者は、このコールバック関数を攻撃することで情報を不正に入手することが可能だったためです。 XHRは、機能面ではJSONとの大きな違いは特にありません。しかし、XHRはオリジンと呼ばれる3要素(スキーム、ドメイン、ポート)のすべてが一致したURLとしか通信できないため、JSONと比べて安全性が向上したと考えられているのです。

Salesforce「Canvas SDK」とは?

SalesforceのCanvas SDKとは、サードパーティ製のアプリケーションをSalesforceに簡単に統合することができるようにする、ツールとJavaScript APIがセットになったものです。 具体的には、SalesforceのChatterタブやVisualforceページなどに、実装言語を問わずサードパーティ製のアプリケーションを統合することができます。さらに、Visualforceページには、ひとつのみではなく複数のキャンバスアプリケーションの表示が可能となっています。 これまでにも、「iFrame」と呼ばれるツールを利用して、サードパーティ製のアプリケーションを画面上で統合することが可能でした。 しかし、キャンバスは任意のドメインでホストされているキャンバスアプリケーションからJavaScriptによるXHRを「*.salesforce.com」に利用でき、SalesforceデータをREST APIを使用して登録や読み取りなどができる点で異なります。 キャンバスアプリケーションからXHRを行う時には、「クロスドメインXHRコール」が利用されていますが、Force.com Canvas SDKのSfdc.canvas.client.ajax関数を利用することで、特に何の操作もなく利用することができます。

Canvas SDKのバージョン

Canvas SDKにはバージョンが設定されていますが、これは各リリースのAPIのバージョンと同じになっています。SDKのバージョンについては、versionメソッドをコールすることによって確認できます。

クロスドメインXHRとは?

クロスドメインXHRとは、クライアント側のXHRコールをSalesforceに返すためのプロキシ機構のことです。 キャンバスアプリケーションは、基本的にiFrameのSalesforceページにロードされるため、キャンバスアプリケーションはXHRのコールを*.salesforce.comドメインに返すことができません。 独自のプロキシをSDKの一部として作成することやリリースすることはできますが、Canvasには、JavaScriptで作成されたクライアント側のプロキシが用意されています。 このプロキシを使用することで、クライアント側のXHRコールをSalesforceに返すことを可能としています。

Canvas SDKを利用して、Salesforceの機能拡張を!

今回は、XHRについて、そしてSalesforceのCanvas SDKについて解説しました。 XHRとは、「XMLHttpRequest」の略で、JavaScriptなどウェブブラウザ搭載のスクリプト言語でサーバとHTTP通信を行う際に利用する組み込みオブジェクト(API)のことでした。 そして、SalesforceのCanvas SDKとは、サードパーティ製のアプリケーションをSalesforceに簡単に統合することができるようする、ツールとJavaScript APIがセットになったものでした。 複数の既存アプリケーションとSalesforceを連動させ、同一画面に統合することができるCanvas SDKを利用して、Salesforceの機能を拡張と効率化を目指しましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】