Download - Force.comとモバイルでイベント管理実例
Session 3-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.
イベント用モバイルアプリケーションはこちら http://bit.ly/devconapp
※本アプリケーションはイベント会場内での利用を想定したものであり、イベント会場外や終了後の利用は出来ませんのでご注意下さい。 ※iOS版ではインストールにDeveloper ConferenceのIDおよびパスワードが必要になります。(AppleIDは必要ありません)
#forcedotcomjp
Speakers
岡本 充洋 ディベロッパプログラム マネージャ @mitsuhiro
高地 範弘 アジャイルビジネス合同会社 代表 @takachino
#forcedotcomjp
Developer Force Japanを是非フォロー下さい
Developer Force Japan
+Developer Force Japan
DeveloperForce Japan
@developerforcej / #forcedotcomjp
#forcedotcomjp
今回のイベント管理のテーマ
#forcedotcomjp
Salesforce.comのイベントで良く頂くご質問
§ 何故自社プラットフォームを登録サイトで使わない? ‒ パートナーさんのソリューション
§ 簡単にクラウドアプリ、モバイルアプリ作れると聞いた ‒ 本当に簡単につくれるのか?
Dogfoodingして証明、経験をシェア
#forcedotcomjp
イベント管理をSalesforce Platformで
§ Salesforce Platformで以下を実現する 1. イベントランディングページ & 登録ページ
2. 登録確認、受講票発行等の各種メール配信
3. 登録者がログインして情報を見れるMyページ
4. モバイルからアクセスして、情報が確認見れる
プラットフォームの活用
#forcedotcomjp
イベント管理システムの概要
登録Webサイト
Force.com Sites a. セッション & ユーザ登録
b. アカウント、 受講票発行
c. ログイン
§ 登録者情報管理 § 参加セッション情報 § ソーシャルネットワーク § ミッション § アンケート
§ Tweetの収集 § フォトギャラリー
#forcedotcomjp
イベント管理システム ‒ データモデル イベント
セッション
セッション参加
取引先責任者
#forcedotcomjp
イベント管理システム ‒ データモデル サーベイ回答者
質問回答
サーベイ質問
サーベイ
取引先責任者
#forcedotcomjp
イベント管理システム ‒ データモデル
ランキング 取引先責任者
ミッションサマリ
ミッション実施
ミッション
#forcedotcomjp
鉄則 : うまくForce.comの機能を使う 登録サイト(Anonymous User)
• セッション一覧の閲覧 • セッションの選択 • 個人情報入力 • ユーザの登録
• Community Chatterの提供 • セッション参加情報の更新 • 個人情報更新 • アンケートの実施
• イベント情報の管理 • ユーザ情報の管理 • 受講票等の送付 • ミッションの管理
コミュニティサイト(Portal User)
管理者ページ(Platform User)
#forcedotcomjp
1、登録サイト(Anonymous User)
§ イベントWebサイトの掲載 ‒ セッション内容、スピーカーなど
§ 通常のSalesforceではない 見栄えの良いデザインが必要
§ コンテンツの更新は 簡単に行えるように
#forcedotcomjp
1、登録サイト(Anonymous User)
§ "ユーザ"を作成して登録する ‒ ログイン、ユーザ情報管理、セキュリティ パスワードリセット、
§ "Salesforce"のユーザを利用する ‒ セルフレジストレーションを使用
String userId = Site.createPortalUser(user,account.Id,password,false);
#forcedotcomjp
2. コミュニティサイト(Portal User)
§ ソーシャルネットワーク § イベント情報の閲覧
‒ セッション、スピーカー § 参加セッションの更新 § モバイルアプリケーション
‒ OAuth & API
#forcedotcomjp
2. コミュニティサイト(Portal User)
§ モバイルアプリケーション ‒ OAuth + API
§ Platformが標準で提供 § 特に意識しなくてもモバイルアプリ を開発する下地はそろっている ‒ ブラウザだけでもChatterは使える
#forcedotcomjp
3. 管理者ページ(Platform User)
§ ソーシャルネットワークの管理 ‒ Chatter
§ イベント情報の管理 ‒ セッション、スピーカー
§ 登録状況の管理 ‒ 登録者数など
#forcedotcomjp
3. 管理者ページ(Platform User)
§ Platform標準機能 ‒ 取引先、取引先責任者
§ ワークフロー、積み上げ集計 § レポート & ダッシュボード
‒ 登録者を即座に把握 ‒ デイリーEメール
#forcedotcomjp
Heroku
§ #forcedotcomjp の ハッシュタグ付きTweetを収集
§ ClearDBに格納 § たくさんつぶやいて下さい!!
#forcedotcomjp
Take A Look
#forcedotcomjp
Mobile側の作り
#forcedotcomjp
アジャイルビジネス合同会社
§ http://www.agilebusiness.jp/ § 雑食クラウドな会社です § 案件量的にはこんな感じ
‒ Webアプリ開発>クラウド(IaaS)系のコンサル>Webサイト制作>モバイルアプリ開発
#forcedotcomjp
モバイルアプリケーションからの接続
【Endpoint】 https://japan.force.com/devcon/services/oauth2/
【Instance】 https://
developerforcejapan.my.salesforce.com/
oAuth 2.0
Force.com REST API
#forcedotcomjp
アプリケーションのスタック
PhoneGap Native Engine
Internal Browser
PhoneGap JavaScript Engine
コンテンツ
HTML CSS JavaScript
PhoneGap Custom Native Plugin
Force.com REST API
PhoneGap Custom Plugin
#forcedotcomjp
プロジェクトの前提条件
§ iOSとAndroid両対応 § 開発スケジュールが非常にタイト § Salesforce Community(6月GA)を利用 § ベンダー(SFDC)から仕様書とか出て来ない適当仕様
‒ 基本ChatterかGithub, メールで仕様をやり取り
#forcedotcomjp
開発の体制と分担
SFDC (サーバ側)
プロマネ
iOSチーム Androidチーム
REST/SOQLチーム
Herokuチーム
Designerチーム
#forcedotcomjp
開発の体制と分担
§ Designerチーム ‒ アプリケーションのデザインを担当
§ REST/ SOQLチーム ‒ Force.comへの接続部分、クエリ作成を担当
§ iOS/Androidチーム ‒ 各プラットフォーム向けのプログラム開発
§ Herokuチーム ‒ ギャラリーアプリケーション
#forcedotcomjp
プロジェクトアーキテクチャの選定
§ どのように作るべきか ‒ iOS/Androidそれぞれのネイティブアプリ ‒ Cordova(PhoneGap)でのハイブリッドアプリ
§ 悩んだ結果 ‒ とにかく開発スケジュールが短い ‒ Chatterのサンプルコードが少ない
§ 最後の最後で、JavaScriptが流用できる率が高いCordova(PhoneGap)を選択
#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
#forcedotcomjp
カスタムエンドポイント
§ カスタマーポータルやコミュニティのユーザには、カスタムEndpointが提供される ‒ 通常のSalesforceのEndpointに接続しても API利用はできない
§ つまり、ApigeeでRESTやSOQLが確認できない
#forcedotcomjp
カスタムエンドポイント
§ Google oAuth PlaygroundでカスタムEndpointに対して接続できるらしい ‒ https://developers.google.com/oauthplayground/ ‒ 参考 :
• http://blogjp.sforce.com/2011/11/forcecom-apigoo-5d7d.html
‒ 実際に試しながらクエリを構築
#forcedotcomjp
Sandbox環境の自己署名SSLのエラー
§ SSLが自己証明書のため、ブラウザは警告を出す ‒ 先のGoogle oAuth 2.0 Playgroundと同様の回避方法をモバイルアプリでも実装していないとSandbox環境に接続してテストができない
§ ハイブリッドアプリでトライ、動かない § ネイティブアプリ(主にAndroidのJava)でもトライ、動かない・・・
#forcedotcomjp
Sandbox環境の自己署名SSLのエラー
§ 要因 ‒ SSLエラーが発生する環境でのクロスドメイン問題への対応 ‒ Salesforceのログイン画面/カスタマーポータルのログイン画面は、JavaScriptで動的に作られていて、かなり複雑 ・・・残スケジュール的に厳しくなってきた
§ 本番環境の中にオブジェクトを分ける形で、開発環境を作ってもらった!(岡本さんごめんなさい)
#forcedotcomjp
Take A Look
Tips & Trick
#forcedotcomjp
Tips & Trick
§ QRコードの生成と受講票 § 考慮すべき項目 ‒ 共有ルールとセキュリティ § ミッションの実施と正解チェック
#forcedotcomjp
QRコードの生成と受講票
§ Force.comにはQRコードを生成する機能は無い ‒ Google Chart APIにOutbound CallをしてQR生成
• 添付ファイルに保存
‒ Batch Apexで一括生成 § 受講票
‒ Visualforceメールで、RenderAS=PDFで受講票を添付 ‒ Visualforceメールテンプレートは一括メール送信できない
• ポーリングする画面で処理
#forcedotcomjp
考慮すべき項目 ‒ 共有ルールとセキュリティ
§ 通常のHCPやSitesの場合、Visualforceのみを利用させればデータへのアクセス権限は画面である程度制御できる ‒ ※ただし最低限の考慮は必要
• 理由 : 標準画面はオブジェクトのPrefixが分かれば入れる ‒ 例 : ミッション実施のレコードをWebサイトから入力しようとする
https://japan.force.com/devcon/a0F/e
#forcedotcomjp
§ APIが有効になると・・・・ ‒ 特にHCPは共有ルールが無いのでデータモデルを意識すべき
考慮すべき項目 ‒ 共有ルールとセキュリティ
...v28.0/query/q=SELECT name,email,title ... FROM Contact
山田, [email protected] , 社長 田中, [email protected] , 常務 佐藤 , [email protected] , CTO ...
#forcedotcomjp
コミュニティを有効にするとき
§ 会社を超えたコミュニティを形成する場合 ‒ コミュニティユーザ表示
#forcedotcomjp
コミュニティを有効にするとき
§ 例えばこんなモデルにしておくと・・・・ イベント用取引先
Aさん Bさん Cさん
#forcedotcomjp
High Volume Customer Portal
§ HCPは共有ルールが使えない ‒ 非公開 or 全公開
§ 非公開でも取得できるもの ‒ 自身が所有者のデータ ‒ 自身を表す取引先責任者 ‒ 「親レコードに連動」をうまく使う
#forcedotcomjp
再掲 ‒ データモデル イベント
セッション
セッション参加
取引先責任者
#forcedotcomjp
ミッションの実施と正解チェック
§ ミッション実施時は、HCPユーザのinsertによって処理が行われる ‒ 例えばQRコードをスキャンする場合
0000fdakeacceek
正解データ: 0000fdakeacceek
正解チェック
#forcedotcomjp
ミッションの実施と正解チェック
§ Salesforce Platformの重要な仕様 § 1トランザクションは、実行したユーザの権限で最後まで動作する ‒ API Call ‒ Trigger ‒ WorkFlow
#forcedotcomjp
ミッションの実施と正解チェック
§ このケースでは、正解確認するには "正解にアクセスできる" 必要がある
0000fdakeacceek
正解データ: 0000fdakeacceek
正解チェック
#forcedotcomjp
§ 解決策 : 暗号化
ミッションの実施と正解チェック
0000fdakeacceek 正解データ(非公開): 0000fdakeacceek
正解チェック
復号化キー (コード内埋込、非公開)
暗号化済み正解データ(公開): a;ho09432QH;OFA0JO;WEA-1=JM'FASJAPOJ
事前に作成
#forcedotcomjp
まとめ
§ Force.comでイベント管理は可能 ‒ Platformとしての底力を証明 ‒ 生産性は高い
§ 足りない部分は、開発者の知恵と工夫で乗り切れる
§ Salesforce Communityからのモバイルアプリケーション作成は可能 ‒ だがまだ新しいためそこそこハマり所もある
#forcedotcomjp
まとめ
是非皆様の会社のイベント管理にも Salesforce Platformを利用下さい
#forcedotcomjp
Q & A
岡本 充洋 ディベロッパプログラム マネージャ @mitsuhiro
高地 範弘 アジャイルビジネス合同会社 代表 @takachino
#forcewebinar