• 検索結果がありません。

いずれかの請求書をタップすると、画面にその請求書の合計額と [ 納入 ] ボタン が表示されます。

本書の第 II 部は、初心者から熟練した上級者まで、コードで Salesforce1 アプリケーショ ンをカスタマイズする必要があるすべての開発者を対象としています。

3. いずれかの請求書をタップすると、画面にその請求書の合計額と [ 納入 ] ボタン が表示されます。

4. [

納入

]

をタップします。

これで、

Shipify Web

アプリケーションで注文処理が開始されます。

Shipify

によっ

て請求書の状況が

[

完了

]

に設定されます。また、取引先のフィード項目も作成 されます。このフィード項目には、請求書が発送されたことと、関連する注文 番号、および請求書へのリンクが表示されます。

これで完了です。これで、

Force.com Canvas

とキャンバスカスタムアクションを使用し て、

Web

アプリケーションを

Salesforce1

アプリケーションに統合するプロセス全体が 終了しました。倉庫の作業者は、顧客の注文の検索、注文の発送、注文と取引先フィー ドの更新ができるようになりました。

パブリッシャーおよびアクションバーのキャンバスアプリケーションの開発ガイドラ インについての詳細は、「ChatterパブリッシャーとSalesforce1アクションバーのキャ ンバスアプリケーション」

(

ページ

268)

を参照してください。

もうひとこと : キャンバスアプリケーションでコンテ キストを取得する

Force.com Canvas SDK

には、アプリケーションや現在のユーザに関するコンテキスト情

報を

Salesforce

から取得できるコールとオブジェクトが備えられています。

コンテキストの取得

署名付き要求を使用してキャンバスアプリケーションを認証すると、キャンバスアプ リケーション

URL

への

POST

の一部として

CanvasRequest

オブジェクト

(Context

オブジェ クトが含まれる) を取得します。認証に OAuth を使用する場合やコンテキスト情報を取 得するためにコールする場合は、

JavaScript

コールを行います。この情報を使用して、

後続のコールで情報を取得してアプリケーションコードを作成できるため、

Salesforce1

ユーザインターフェースと完全に統合されているように見えます。

次のコードサンプルは、

JavaScript

コールでコンテキストを取得する例を示していま す。このコードでは、テキストが「Get Context」のリンクを作成し、そのリンクから

Sfdc.canvas.client.ctx関数をコールします。

<script>

function callback(msg) { if (msg.status !== 200) {

alert("Error: " + msg.status);

return;

}

alert("Payload: ", msg.payload);

}

var ctxlink = Sfdc.canvas.byId("ctxlink");

var client = Sfdc.canvas.oauth.client();

ctxlink.onclick=function() {

Sfdc.canvas.client.ctx(callback, client)};

}

</script>

<a id="ctxlink" href="#">Get Context</a>

コンテキストのオブジェクト

キャンバスアプリケーションでコールを行ってコンテキストを取得すると、応答で

CanvasRequest

オブジェクトが返されます。このオブジェクトには、アプリケーション

とユーザに関するすべてのコンテキスト情報が含まれます。コンテキストのオブジェ クトは、次のとおりです。

説明 オブジェクト

Context

オブジェクトと

Client

オブジェクトを返します。

CanvasRequest

クライアントアプリケーションに関するコンテキスト情報を返 します。

Client

キャンバスアプリケーションのコンシューマに関する情報を返 します。

Application

Environment

Links

Organization

User

オブ ジェクトが含まれます。

Context

バージョン、アクセス方法、

URL

などのキャンバスアプリケー ションに関する情報を返します。

Application

場所、

UI

テーマなどの環境に関する情報を返します。

Environment

メタデータ URL、ユーザ URL、Chatter グループ URL などのリンク を返します。これらのリンクを使用して、アプリケーションか

Salesforce

へのコールを行うことができます。

Links

名前、

ID

、通貨コードなどの組織に関する情報を返します。

Organization

ロケール、名前、ユーザ

ID

、メールアドレスなどの現在ログイ ンしているユーザに関する情報を返します。

User

次のコードスニペットは、

CanvasRequest

オブジェクトの例を示しています。

{

"context":

{

"application":

{

"applicationId":"06Px000000003ed",

"authType":"SIGNED_REQUEST",

"canvasUrl":"http://instance.salesforce.com:8080 /canvas_app_path/canvas_app.jsp",

"developerName":"my_java_app",

"name":"My Java App",

"namespace":"org_namespace",

"referenceId":"09HD00000000AUM",

"samlInitiationMethod": "None",

"version":"1.0.0"

},

"user":

{

"accessibilityModeEnabled":false,

"currencyISOCode":"USD",

"email":"[email protected]",

"firstName":"Sean",

"fullName":"Sean Forbes",

"isDefaultNetwork":false,

"language":"en_US",

"lastName":"Forbes",

"locale":"en_US",

"networkId":"0DBxx000000001r",

"profileId":"00ex0000000jzpt",

"profilePhotoUrl":"/profilephoto/005/F",

"profileThumbnailUrl":"/profilephoto/005/T",

"roleId":null,

"siteUrl":"https://mydomain.force.com/",

"siteUrlPrefix":"/mycommunity",

"timeZone":"America/Los_Angeles",

"userId":"005x0000001SyyEAAS",

"userName":"[email protected]",

"userType":"STANDARD"

},

"environment":

{

"parameters":

{

"complex":

{

"key1":"value1",

"key2":"value2"

},

"integer":10,

"simple":"This is a simple string.",

"boolean":true },

"dimensions":

{

"height": "900px",

"width": "800px",

"maxHeight":"2000px",

"maxWidth":"1000px",

"clientHeight":"80px",

"clientWidth":"968px"

},

"displayLocation":"Chatter",

"locationUrl": "http://www.salesforce.com

"uiTheme":"Theme3",

"record":{},

"version":

{

"api":"34.0",

"season":"SUMMER"

}, },

"organization":

{

"currencyIsoCode":"USD",

"multicurrencyEnabled":true,

"name":"Edge Communications",

"namespacePrefix":"org_namespace",

"organizationId":"00Dx00000001hxyEAA"

},

"links":

{

"chatterFeedItemsUrl":"/services/data/v34.0/

chatter/feed-items",

"chatterFeedsUrl":"/services/data/v34.0/

chatter/feeds",

"chatterGroupsUrl":"/services/data/v34.0/

chatter/groups",

"chatterUsersUrl":"/services/data/v34.0/

chatter/users",

"enterpriseUrl":"/services/Soap/c/34.0/

00Dx00000001hxy",

"loginUrl":"http://login.salesforce.com",

"metadataUrl":"/services/Soap/m/34.0/00Dx00000001hxy",

"partnerUrl":"/services/Soap/u/34.0/00Dx00000001hxy",

"queryUrl":"/services/data/v34.0/query/",

"recentItemsUrl":"/services/data/v34.0/recent/",

"restUrl":"/services/data/v34.0/",

"searchUrl":"/services/data/v34.0/search/",

"sobjectUrl":"/services/data/v34.0/sobjects/",

"userUrl":"/005x0000001SyyEAAS"

} },

"client":

{

"instanceId":"06Px000000002JZ",

"instanceUrl":"http://instance.salesforce.com:

8080",

"oauthToken":"00Dx0000X00Or4J!ARQAKowP65p8FDHkvk.Uq5...",

"targetOrigin":"http://instance.salesforce.com:

8080"

},

"algorithm":"HMACSHA256",

"userId":"005x0000001SyyEAAS",

"issuedAt":null }

コンテキストのオブジェクトおよび

Force.com Canvas SDK

についての詳細は、『Force.com

Canvas開発者ガイド』を参照してください。

フィードのキャンバスアプリケーションを使用し た Salesforce1 の拡張

Force.com Canvas

を使用すると、

Salesforce1

アプリケーションでキャンバスアプリケー

ションをフィード項目として公開することによって、さらに多くの機能をフィードに 追加できます。

この機能を使用して、次のことができます。

Salesforce1

アクションバーのキャンバスカスタムアクションから公開されたキャン

バスアプリケーションを使用するか、

Salesforce

フルサイトのパブリッシャーを使用 して、フィードに投稿する。

Chatter API

を使用してフィードに投稿する。

フィード項目内にキャンバスアプリケーションを直接表示する。

この章では、

Force.com Canvas

を使用してフィードでサードパーティの

Web

アプリケー ションを統合することによって、

Acme Wireless

組織をさらに拡張します。

Acme Wireless

には、

Heroku

で実行される

DeliveryTrakr

という

Web

アプリケーションがあ り、このアプリケーションを使用して顧客の注文の配送が処理されます。

Heroku

で実

行される

DeliveryTrackr

アプリケーションをコピーし、グローバルアクションとしてパ

ブリッシャーから使用できるようにします。

このシナリオでは、モバイルデバイスを持つ倉庫の作業者が配送のリストを表示でき ます。倉庫の作業者がパブリッシャーからアプリケーションにアクセスすると、さま ざまなフィード投稿を作成できます。アプリケーションでは、配送に関する情報を含 むフィード項目であるテキスト投稿、

DeliveryTrakr

アプリケーションへのリンクを含む フィード項目であるリンク投稿、または別のキャンバスアプリケーションへのリンク を含むフィード項目であるキャンバス投稿を作成できます。このリンクをクリックし て、配送を承認または拒否できるキャンバスアプリケーションにアクセスできます。

実際に試す : DeliveryTrakr Web アプリケーションをコ ピーする

DeliveryTrakr Web

アプリケーションをコピーして、フィードのキャンバスアプリケー

ションの統合処理を開始します。

このガイドの「開発の前提条件」

(

ページ

83)

に記載されている前提条件に加えて、次 のものも必要です。

「アプリケーションのカスタマイズ」および「すべてのデータの編集」ユーザ権 限。ほとんどの場合、管理者にはすでにこれらの権限があります。管理者以外の 場合、キャンバスアプリケーションのプレビューアを表示してキャンバスアプリ ケーションを作成できるようにこれらの権限を追加する必要があります。

Git

のインストール。https://help.github.com/articles/set-up-gitに移 動し、

Git

をインストールして設定します。

Git

をインストールした後、

keygen

ツールを使用して

SSH

を設定する必要が生じる 場合があります。詳細は、

https://help.github.com/articles/generating-ssh-keysを参照してくだ さい。Windows を使用している場合、このツールは Git \binディレクトリにありま す。このディレクトリは、

Git

をインストールしてもパスに追加されません。コン トロールパネルを使用してパスに\binディレクトリを追加します。インストー ルディレクトリに応じて、パスはC:\Program Files (x86)\Git\binのように なります。

コード例をコピーする

GitHub

アカウント。https://github.com/plansに移動

し、

GitHub

アカウントを設定します。

Web

アプリケーションは

Heroku

で実行されるため

Heroku

アカウント。

https://api.heroku.com/signupに移動し、

Heroku

アカウントを作成します。

コマンドラインから

Heroku

アプリケーションを管理する

Heroku Toolbelt

https://toolbelt.heroku.comに移動し、

Heroku Toolbelt

をダウンロードしてイ ンストールします。

アプリケーションの機能に関係なく、キャンバスアプリケーションの作成手順および 実行手順は同じです。したがって、この章の手順は、前の章「キャンバスカスタムア クションを使用したSalesforce1の拡張」

(

ページ

129)

の手順と似ています。

DeliveryTrakr

は、顧客の注文の配送を追跡するために

Acme Wireless

で使用する

Web

アプ

リケーションです。倉庫の作業者はこのアプリケーションを使用して、配送済みの注 文を確認し、配送情報をフィードに投稿します。

DeliveryTrakr Web

アプリケーションに は、一部の配送処理ロジックが含まれていますが、完全なアプリケーションではあり ません。このアプリケーションの目的は、

Web

アプリケーションと

Salesforce1

アプリ ケーションをどのように統合できるかを示すことにあります。

DeliveryTrakr

は、

Heroku

で実行される

Java

アプリケーションです。アプリケーションで

実行中の各インスタンスは、組織で作成する接続アプリケーションに対してコンシュー マの秘密を参照する必要があります。したがって、キャンバスアプリケーションとし て追加できる

DeliveryTrakr

の独自のインスタンスが

Heroku

で必要となります。このス テップでは、処理の最初のステップであるアプリケーションのコピーを行います。

1.

コマンドウィンドウを開き、

DeliveryTrakr

をダウンロードするディレクトリに移 動します。アプリケーションをコピーすると、Delivery-Tracker-Java-App というディレクトリが作成され、ここからコピーコマンドを実行できます。

Windows

を実行しているコンピュータの場合は、

[

スタート

] > [

ファイル名を

指定して実行

...]

をクリックしてコマンドウィンドウを開き、「cmd」と入力 します。

Mac OS

を実行しているコンピュータの場合は、

Command + Space

キーを押し

てコマンドウィンドウを開き、「terminal」と入力します。

2.

git clone

https://github.com/forcedotcom/Delivery-Tracker-Java-Appコマン ドを入力します。

Outline

関連したドキュメント