force.comとモバイルでイベント管理実例

53
Session 3-2 Force.comとモバイルでイベント管理実例 株式会社セールスフォース・ドットコム

Upload: salesforce-developers-japan

Post on 03-Nov-2014

5 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Force.comとモバイルでイベント管理実例

Session 3-2 Force.comとモバイルでイベント管理実例 株式会社セールスフォース・ドットコム

Page 2: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Safe Harbor

Safe harbor statement under the Private Securities Litigation Reform Act of 1995:

This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.

Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Page 3: Force.comとモバイルでイベント管理実例

イベント用モバイルアプリケーションはこちら http://bit.ly/devconapp

※本アプリケーションはイベント会場内での利用を想定したものであり、イベント会場外や終了後の利用は出来ませんのでご注意下さい。 ※iOS版ではインストールにDeveloper ConferenceのIDおよびパスワードが必要になります。(AppleIDは必要ありません)

Page 4: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Speakers

岡本 充洋 ディベロッパプログラム マネージャ @mitsuhiro

高地 範弘 アジャイルビジネス合同会社 代表 @takachino

Page 5: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Developer Force Japanを是非フォロー下さい

Developer Force Japan

+Developer Force Japan

DeveloperForce Japan

@developerforcej / #forcedotcomjp

Page 6: Force.comとモバイルでイベント管理実例

#forcedotcomjp

今回のイベント管理のテーマ

Page 7: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Salesforce.comのイベントで良く頂くご質問

§  何故自社プラットフォームを登録サイトで使わない? ‒  パートナーさんのソリューション

§  簡単にクラウドアプリ、モバイルアプリ作れると聞いた ‒  本当に簡単につくれるのか?

Dogfoodingして証明、経験をシェア

Page 8: Force.comとモバイルでイベント管理実例

#forcedotcomjp

イベント管理をSalesforce Platformで

§  Salesforce Platformで以下を実現する 1. イベントランディングページ & 登録ページ

2. 登録確認、受講票発行等の各種メール配信

3. 登録者がログインして情報を見れるMyページ

4. モバイルからアクセスして、情報が確認見れる

Page 9: Force.comとモバイルでイベント管理実例

プラットフォームの活用

Page 10: Force.comとモバイルでイベント管理実例

#forcedotcomjp

イベント管理システムの概要

登録Webサイト

Force.com Sites a. セッション & ユーザ登録

b. アカウント、 受講票発行

c. ログイン

§  登録者情報管理 §  参加セッション情報 §  ソーシャルネットワーク §  ミッション §  アンケート

§  Tweetの収集 §  フォトギャラリー

Page 11: Force.comとモバイルでイベント管理実例

#forcedotcomjp

イベント管理システム ‒ データモデル イベント

セッション

セッション参加

取引先責任者

Page 12: Force.comとモバイルでイベント管理実例

#forcedotcomjp

イベント管理システム ‒ データモデル サーベイ回答者

質問回答

サーベイ質問

サーベイ

取引先責任者

Page 13: Force.comとモバイルでイベント管理実例

#forcedotcomjp

イベント管理システム ‒ データモデル

ランキング 取引先責任者

ミッションサマリ

ミッション実施

ミッション

Page 14: Force.comとモバイルでイベント管理実例

#forcedotcomjp

鉄則 : うまくForce.comの機能を使う 登録サイト(Anonymous User)

•  セッション一覧の閲覧 •  セッションの選択 •  個人情報入力 •  ユーザの登録

•  Community Chatterの提供 •  セッション参加情報の更新 •  個人情報更新 •  アンケートの実施

•  イベント情報の管理 •  ユーザ情報の管理 •  受講票等の送付 •  ミッションの管理

コミュニティサイト(Portal User)

管理者ページ(Platform User)

Page 15: Force.comとモバイルでイベント管理実例

#forcedotcomjp

1、登録サイト(Anonymous User)

§  イベントWebサイトの掲載 ‒  セッション内容、スピーカーなど

§  通常のSalesforceではない 見栄えの良いデザインが必要

§  コンテンツの更新は 簡単に行えるように

Page 16: Force.comとモバイルでイベント管理実例

#forcedotcomjp

1、登録サイト(Anonymous User)

§  "ユーザ"を作成して登録する ‒  ログイン、ユーザ情報管理、セキュリティ パスワードリセット、

§  "Salesforce"のユーザを利用する ‒  セルフレジストレーションを使用

String userId = Site.createPortalUser(user,account.Id,password,false);

Page 17: Force.comとモバイルでイベント管理実例

#forcedotcomjp

2. コミュニティサイト(Portal User)

§  ソーシャルネットワーク §  イベント情報の閲覧

‒  セッション、スピーカー §  参加セッションの更新 §  モバイルアプリケーション

‒  OAuth & API

Page 18: Force.comとモバイルでイベント管理実例

#forcedotcomjp

2. コミュニティサイト(Portal User)

§  モバイルアプリケーション ‒  OAuth + API

§  Platformが標準で提供 §  特に意識しなくてもモバイルアプリ を開発する下地はそろっている ‒  ブラウザだけでもChatterは使える

Page 19: Force.comとモバイルでイベント管理実例

#forcedotcomjp

3. 管理者ページ(Platform User)

§  ソーシャルネットワークの管理 ‒  Chatter

§  イベント情報の管理 ‒  セッション、スピーカー

§  登録状況の管理 ‒  登録者数など

Page 20: Force.comとモバイルでイベント管理実例

#forcedotcomjp

3. 管理者ページ(Platform User)

§  Platform標準機能 ‒  取引先、取引先責任者

§  ワークフロー、積み上げ集計 §  レポート & ダッシュボード

‒  登録者を即座に把握 ‒  デイリーEメール

Page 21: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Heroku

§  #forcedotcomjp の ハッシュタグ付きTweetを収集

§  ClearDBに格納 §  たくさんつぶやいて下さい!!

Page 22: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Take A Look

Page 23: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Mobile側の作り

Page 24: Force.comとモバイルでイベント管理実例

#forcedotcomjp

アジャイルビジネス合同会社

§  http://www.agilebusiness.jp/ §  雑食クラウドな会社です §  案件量的にはこんな感じ

‒  Webアプリ開発>クラウド(IaaS)系のコンサル>Webサイト制作>モバイルアプリ開発

Page 25: Force.comとモバイルでイベント管理実例

#forcedotcomjp

モバイルアプリケーションからの接続

【Endpoint】 https://japan.force.com/devcon/services/oauth2/

【Instance】 https://

developerforcejapan.my.salesforce.com/

oAuth 2.0

Force.com REST API

Page 26: Force.comとモバイルでイベント管理実例

#forcedotcomjp

アプリケーションのスタック

PhoneGap Native Engine

Internal Browser

PhoneGap JavaScript Engine

コンテンツ

HTML CSS JavaScript

PhoneGap Custom Native Plugin

Force.com REST API

PhoneGap Custom Plugin

Page 27: Force.comとモバイルでイベント管理実例

#forcedotcomjp

プロジェクトの前提条件

§  iOSとAndroid両対応 §  開発スケジュールが非常にタイト §  Salesforce Community(6月GA)を利用 §  ベンダー(SFDC)から仕様書とか出て来ない適当仕様

‒  基本ChatterかGithub, メールで仕様をやり取り

Page 28: Force.comとモバイルでイベント管理実例

#forcedotcomjp

開発の体制と分担

SFDC (サーバ側)

プロマネ

iOSチーム Androidチーム

REST/SOQLチーム

Herokuチーム

Designerチーム

Page 29: Force.comとモバイルでイベント管理実例

#forcedotcomjp

開発の体制と分担

§  Designerチーム ‒  アプリケーションのデザインを担当

§  REST/ SOQLチーム ‒  Force.comへの接続部分、クエリ作成を担当

§  iOS/Androidチーム ‒  各プラットフォーム向けのプログラム開発

§  Herokuチーム ‒  ギャラリーアプリケーション

Page 30: Force.comとモバイルでイベント管理実例

#forcedotcomjp

プロジェクトアーキテクチャの選定

§  どのように作るべきか ‒  iOS/Androidそれぞれのネイティブアプリ ‒  Cordova(PhoneGap)でのハイブリッドアプリ

§  悩んだ結果 ‒  とにかく開発スケジュールが短い ‒  Chatterのサンプルコードが少ない

§  最後の最後で、JavaScriptが流用できる率が高いCordova(PhoneGap)を選択

Page 31: Force.comとモバイルでイベント管理実例

#forcedotcomjp

APIの選定について

§  今回Chatter REST APIを直接利用した訳ではなく、Force.com REST API経由で、Chatter APIを呼んだ ‒  Chatter API例

•  /services/data/v28.0/chatter/users/me

‒  Force.com API例 •  /services/data/v28.0/query?q=SELECT%20Name%20FROM

%20Contact

‒  REST API経由コミュニティ版Chatter呼び出し •  /services/data/v28.0/connect/communities/[コミュニティID]/

chatter/users/me

Page 32: Force.comとモバイルでイベント管理実例

#forcedotcomjp

カスタムエンドポイント

§  カスタマーポータルやコミュニティのユーザには、カスタムEndpointが提供される ‒  通常のSalesforceのEndpointに接続しても API利用はできない

§  つまり、ApigeeでRESTやSOQLが確認できない

Page 33: Force.comとモバイルでイベント管理実例

#forcedotcomjp

カスタムエンドポイント

§  Google oAuth PlaygroundでカスタムEndpointに対して接続できるらしい ‒  https://developers.google.com/oauthplayground/ ‒  参考 :

•  http://blogjp.sforce.com/2011/11/forcecom-apigoo-5d7d.html

‒  実際に試しながらクエリを構築

Page 34: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Sandbox環境の自己署名SSLのエラー

§  SSLが自己証明書のため、ブラウザは警告を出す ‒  先のGoogle oAuth 2.0 Playgroundと同様の回避方法をモバイルアプリでも実装していないとSandbox環境に接続してテストができない

§  ハイブリッドアプリでトライ、動かない §  ネイティブアプリ(主にAndroidのJava)でもトライ、動かない・・・

Page 35: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Sandbox環境の自己署名SSLのエラー

§  要因 ‒  SSLエラーが発生する環境でのクロスドメイン問題への対応 ‒  Salesforceのログイン画面/カスタマーポータルのログイン画面は、JavaScriptで動的に作られていて、かなり複雑 ・・・残スケジュール的に厳しくなってきた

§  本番環境の中にオブジェクトを分ける形で、開発環境を作ってもらった!(岡本さんごめんなさい)

Page 36: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Take A Look

Page 37: Force.comとモバイルでイベント管理実例

Tips & Trick

Page 38: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Tips & Trick

§  QRコードの生成と受講票 §  考慮すべき項目 ‒ 共有ルールとセキュリティ §  ミッションの実施と正解チェック

Page 39: Force.comとモバイルでイベント管理実例

#forcedotcomjp

QRコードの生成と受講票

§  Force.comにはQRコードを生成する機能は無い ‒  Google Chart APIにOutbound CallをしてQR生成

•  添付ファイルに保存

‒  Batch Apexで一括生成 §  受講票

‒  Visualforceメールで、RenderAS=PDFで受講票を添付 ‒  Visualforceメールテンプレートは一括メール送信できない

•  ポーリングする画面で処理

Page 40: Force.comとモバイルでイベント管理実例

#forcedotcomjp

考慮すべき項目 ‒ 共有ルールとセキュリティ

§  通常のHCPやSitesの場合、Visualforceのみを利用させればデータへのアクセス権限は画面である程度制御できる ‒  ※ただし最低限の考慮は必要

•  理由 : 標準画面はオブジェクトのPrefixが分かれば入れる ‒  例 : ミッション実施のレコードをWebサイトから入力しようとする

https://japan.force.com/devcon/a0F/e

Page 41: Force.comとモバイルでイベント管理実例

#forcedotcomjp

§  APIが有効になると・・・・ ‒  特にHCPは共有ルールが無いのでデータモデルを意識すべき

考慮すべき項目 ‒ 共有ルールとセキュリティ

...v28.0/query/q=SELECT name,email,title ... FROM Contact

山田, [email protected] , 社長 田中, [email protected] , 常務 佐藤 , [email protected] , CTO ...

Page 42: Force.comとモバイルでイベント管理実例

#forcedotcomjp

コミュニティを有効にするとき

§  会社を超えたコミュニティを形成する場合 ‒  コミュニティユーザ表示

Page 43: Force.comとモバイルでイベント管理実例

#forcedotcomjp

コミュニティを有効にするとき

§  例えばこんなモデルにしておくと・・・・ イベント用取引先

Aさん Bさん Cさん

Page 44: Force.comとモバイルでイベント管理実例

#forcedotcomjp

High Volume Customer Portal

§  HCPは共有ルールが使えない ‒  非公開 or 全公開

§  非公開でも取得できるもの ‒  自身が所有者のデータ ‒  自身を表す取引先責任者 ‒  「親レコードに連動」をうまく使う

Page 45: Force.comとモバイルでイベント管理実例

#forcedotcomjp

再掲 ‒ データモデル イベント

セッション

セッション参加

取引先責任者

Page 46: Force.comとモバイルでイベント管理実例

#forcedotcomjp

ミッションの実施と正解チェック

§  ミッション実施時は、HCPユーザのinsertによって処理が行われる ‒  例えばQRコードをスキャンする場合

0000fdakeacceek

正解データ: 0000fdakeacceek

正解チェック

Page 47: Force.comとモバイルでイベント管理実例

#forcedotcomjp

ミッションの実施と正解チェック

§  Salesforce Platformの重要な仕様 §  1トランザクションは、実行したユーザの権限で最後まで動作する ‒  API Call ‒  Trigger ‒  WorkFlow

Page 48: Force.comとモバイルでイベント管理実例

#forcedotcomjp

ミッションの実施と正解チェック

§  このケースでは、正解確認するには "正解にアクセスできる" 必要がある

0000fdakeacceek

正解データ: 0000fdakeacceek

正解チェック

Page 49: Force.comとモバイルでイベント管理実例

#forcedotcomjp

§  解決策 : 暗号化

ミッションの実施と正解チェック

0000fdakeacceek 正解データ(非公開): 0000fdakeacceek

正解チェック

復号化キー (コード内埋込、非公開)

暗号化済み正解データ(公開): a;ho09432QH;OFA0JO;WEA-1=JM'FASJAPOJ

事前に作成

Page 50: Force.comとモバイルでイベント管理実例

#forcedotcomjp

まとめ

§  Force.comでイベント管理は可能 ‒  Platformとしての底力を証明 ‒  生産性は高い

§  足りない部分は、開発者の知恵と工夫で乗り切れる

§  Salesforce Communityからのモバイルアプリケーション作成は可能 ‒  だがまだ新しいためそこそこハマり所もある

Page 51: Force.comとモバイルでイベント管理実例

#forcedotcomjp

まとめ

是非皆様の会社のイベント管理にも Salesforce Platformを利用下さい

Page 52: Force.comとモバイルでイベント管理実例

#forcedotcomjp

Q & A

岡本 充洋 ディベロッパプログラム マネージャ @mitsuhiro

高地 範弘 アジャイルビジネス合同会社 代表 @takachino

Page 53: Force.comとモバイルでイベント管理実例

#forcewebinar