Contenu connexe Similaire à Spring'17リリースノート輪読会 API By フレクト (20) Spring'17リリースノート輪読会 API By フレクト4. Chatter REST APIとは
• 特にモバイルアプリでSaleseforceデータを利用するためのREST API
• FacebookやTwitterのREST APIに近い位置づけ
• Chatter以外(ファイル,通知,Data.comの購入など)にもアクセス可
Chatter REST API 開発者ガイド「 Chatter REST API の概要」より
・・・REST APIとは別物?
5. Chatter REST API <> REST API
• Webサイト、モバイルデバイス用にデータが構造化される
• ユーザーのタイムゾーンと言語にローカライズされる
• レート制限の単位が違う
Chatter REST API : ユーザ、アプリケーション、および時間ごと
REST API : 組織ごと
Chatter REST API 開発者ガイド「 Chatter REST API を使用するケースの決定」より
6. データの構造化
{
"aboutMe" : "自己紹介",
"additionalLabel" : null,
"address" : {
"city" : "Fujimino",
"country" : "JP"
…………
},
"bannerPhoto" : {
"bannerPhotoUrl" : "https://…
"bannerPhotoVersionId" : null,
"chatterActivity" : { … }
}
Chatter REST API
/services/data/v39.0/chatter/users/userId
{
"attributes" : {
"type" : "User",
"url" :"/services/data/v38.0/sobjects/User/xxx"
},
"Id" : "00528000003heOUAAY",
"Username" : "xxx@sample.com",
"LastName" : "金森",
"FirstName" : "政雄",
"Name" : "金森 政雄”………
}
REST API
/services/data/v39.0/sobjects/user/userid
構造化されている
filterGroup,
exclude,
includeで絞り込みも可能
属性が並んでいる
7. Chatter REST APIとREST APIの使い分け
Chatter REST API
モバイルアプリケーションなどクライアントアプリ向け
例)スマホ向けのオリジナルChatterクライアントアプリ作成
REST API
SFとその他のシステムのシステム間連携向け
例)BtoC向けのWebサービスからSFのレコードを操作する
9. Chatter REST API Spring'17 概観①
• 活動アラーム
• 非同期クエリ(Pilot)
• Chatter
• 絵文字
• ストリーム (new!!)
• Chatterフィード
• いいね!
• 投稿の共有 (new!!)
• ダイレクトメッセージ (new!!)
• コミュニティの上位の未回答の質問のリスト (機能改善)
• 確認待機中のフィード
10. Chatter REST API Spring'17 概観②
• コンテンツワークスペース:ユーザ権限の取得
• メール差し込み項目サービス
• ファイル
• 複数の組織、コミュニティ、コンテンツワークスペースと共有
• ファイル画像の情報取得
• Files Connect
• 外部ファイルURIからファイル参照を作成
• グループ
• 管理トピック
• キャプチャした活動(new!)の共有
11. Chatter REST API Spring‘17 概観:感想
• 新しい機能は最初からAPIを用意しているものが結構ある
• Chatterのストリーム、投稿の共有、ダイレクトメッセージ
• キャプチャした活動の共有 など
• 既存改善系はより細かく、かつまとめて処理できるように
• Chatterの絵文字、いいね!など
• ファイルを複数の対象に共有できるように
• 使えなくなっちゃうパラメータもある、、、
(ファイル共有のshareWithとかは残しても良かったんじゃ、、、)
12. Chatter REST API Spring'17 概観
• 活動アラーム
• 非同期クエリ(Pilot)
• Chatter
• 絵文字
• ストリーム (new!!)
• Chatterフィード
• いいね!
• 投稿の共有 (new!!)
• ダイレクトメッセージ (new!!)
• コミュニティの上位の未回答の質問のリスト (機能改善)
• 確認待機中のフィード
この二つに注目してみます!!
17. BigObjects
• Summer’15で追加
• Apache HbaseによるNOSQL データストア
• Apache Phoenix によってSQLで利用可能に(ユーザーが使うのはSOQL?)
外部のデータなどをNOSQLで取り込み、
SF上で利用できるようにする
スライド引用元:https://www.slideshare.net/developerforce/analyze-billions-of-records-on-salesforce-app-cloud-with-bigobject
19. Chatter ストリーム: Spring’17での追加内容
• ストリームフィードへの URL の取得
• ストリームのすべてのフィード要素の取得
• コンテキストユーザのストリームの取得
• ストリームの作成
• ストリームに関する情報の取得
• ストリームの更新
• ストリームの削除
→CRUDができる
・・・・ストリーム???
25. SOSL : WITH HIGHLIGHT
• WITH HIGHLIGHT 句を使用した検索結果での
一致する語の強調表示
Salesforce Object Search Languageとは・・・
・1回のクエリですべてのオブジェクトを検索できる
・テキスト検索が得意
・グローバル検索を想像するとイメージしやすいかも
26. SOSL : そもそもSOSLの使い方とは
<Apex>
FIND ’Salesforce‘ IN ALL FIELDS RETURNING Account(Name),Contact(FirstName,LastName,Department)
<開発者コンソール>
FIND {Salesforce} IN ALL FIELDS RETURNING Account(Name), Contact(FirstName,LastName,Department)
オススメ!TrailHead【SOSL クエリの作成】
https://trailhead.salesforce.com/ja/modules/apex_database/units/apex_database_sosl
ApexとAPIでは記載が少し異
なる。初めて知りました。。
27. SOSL : WITH HIGHLIGHTの使い方
(例)
ハイライトをつけて、Salesforceという語を含む
取引先(Account)と取引先責任者(Contact)を検索します。
FIND {Salesforce} IN ALL FIELDS RETURNING Account(Name),
Contact(FirstName,LastName,Department) WITH HIGHLIGHT
30. SOSL : WITH HIGHLIGHTまとめ
• ハイライトは別項目に<mark></mark>付きで返ってくる
• サポートしてるのは、REST APIかSOAP API
• 1回のクエリでハイライトは25レコードまで
• 対応している項目は、テキスト系のみ(メール、テキスト、テキストエ
リア、ロングテキストエリア)
外部にコミュニティーサイトとか構築してたりすると、使えそう
ロングテキストエリアも
ハイライトできたよ!
32. REST API : Composite
• Composite リソースを使用した複数の要求の
一度での実行: 正式リリース
33. REST API : Compositeフレンドリーな説明文
モバイルアプリケーションを作成しているところを想像してみてください。
クライアントと Salesforce の間を往復する回数を減らすために、複数の
REST API 要求を 1 回のコールで実行する必要があります。Batch リ
ソースを検討しましたが、Batch ではサブ要求間で情報が渡されませ
ん。これまでならあきらめるところですが、もうその必要はありません!
Composite リソースを使用すると、1 回のコールで複数の要求を実行
でき、あるサブ要求の結果を後のサブ要求で参照できます。
34. REST API : Composite(リファレンスをチェックする)
リリースノートは、さらっとしか書いていないので
リファレンスをチェックしましょう!
https://developer.salesforce.com/docs/atlas.ja-
jp.206.0.api_rest.meta/api_rest/resources_composite.htm
35. REST API : BatchとCompositeの比較
Batch Composit <NEW!!>
サブ要求上限 25個 25個(内10個クエリ操作OK)
コミット単位 サブ要求単位 サブ要求か、全体のロールバック選べる、サブ要
求ごとに指定ができる
リソース Limits,sObject,Query,Query ALL,
Search,Connect,Chatter,Actions
sObject,Query,QueryALL
その他 リクエストボディの順番で実行
制限は10分
あるサブ要求の結果を、後のサブ要求で参照で
きる
用途 1 回の要求でレコードを更新してその名
前と請求先の郵便番号をクエリする
取引先を作成してその情報を取得します。次に、
取引先データおよび Composite リソースの参照
ID 機能を使用して取引先責任者を作成し、取引
先データに基づいて項目に値を入力します。そ
の後、要求文字列でクエリパラメータを使用して、
取引先の所有者に関する特定の情報を取得しま
す。最後に、特定の日付以降メタデータが変更さ
れた場合は、取引先のメタデータを取得します。
36. REST API : Compositeの使い方
(例)
取引先を作成し、
その取引先責任者を1回のRESTで作成する。
{
"compositeRequest" : [{
"method" : "POST”, "url" : "/services/data/v38.0/sobjects/Account",
"referenceId" : "refAccount",
"body" : { "Name" : "Sample Account" }
},{
"method" : "POST”, "url" : "/services/data/v38.0/sobjects/Contact",
"referenceId" : "refContact",
"body" : {
"LastName" : "Sample Contact”, "AccountId" : "@{refAccount.id}"
}
}]
}
取引先を作成する
サブ要求
取引先責任者を作成する
サブ要求
39. REST API : Composite(エラー時のロールバック制御)
リクエストボディにAllOrNoneをtrueに指定することで、要求全体をロールバックすることができる。
40. allOrNone・・・ true の場合、Composite 要求全体がロールバックさ
れます。最上位レベルの要求は HTTP 200 を返し、各サブ要求の
応答が含まれます。
REST API : Composite(エラー時のロールバック制御)
本当はrefAccount.idで
取引先IDを指定するところを
true値を指定してみる。
取引先責任者の作成に失
敗し、1つ目のサブ要求も
ロールバックしている。
41. REST API : Compositeまとめ
• サブ要求25個までOK
• サブ要求の結果を次のサブ要求で再利用できる
• トランザクションの制御ができる
• モバイルアプリケーションを作る際に、わざわざApexクラスでService
をクラスを作らなくても標準のREST APIで良いところまで実装できる
• 1画面に複数のオブジェクトから情報を取得する際に1コールで取得
できる
42. Bulk API
Bulk API Now Supports More Complex Queries
Introducing Bulk API 2.0 (Pilot)
46. BulkAPIで使える演算子
OperationEnum 説明 DataLoader対応
query IsDeleted=Trueのレコードは含めない。 Export
queryall IsDeleted=Trueのレコードも含めてqueryで
きる。
ExportAll
upsert ー Upsert
update ー Update
delete 論理削除その1。IsDeleted=Trueとなり、ゴ
ミ箱へ移動
Delete
hardDelete 論理削除その2。物理削除待ちとなり、プ
ラットフォーム側で自動削除される。
物理削除ではない、というかSalesforce上
でユーザ側での物理削除はできない
Hard Delete
NEW!
Notes de l'éditeur ここは時間があったら表にする ここは時間があったら表にする 結構数が多く全てを細かくは紹介できないので、、、 https://releasenotes.docs.salesforce.com/ja-jp/winter16/release-notes/rn_general_async_query.htm#rn_general_async_query
https://releasenotes.docs.salesforce.com/ja-jp/summer15/release-notes/rn_forcecom_bigobject.htm
https://www.slideshare.net/developerforce/analyze-billions-of-records-on-salesforce-app-cloud-with-bigobject?
WITH HIGHLIGHT 句を使用した検索結果での一致する語の強調表示
https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_sosl_with_highlight.htm?search_text=date
サポートされているのは、SOAP APIとREST API
/services/data/v39.0/search/?q=FIND+%7BSalesforce%7D
/services/data/v39.0/search/?q=FIND+%7BSalesforce%7D+WITH+HIGHLIGHT