『Force.com開発』カテゴリの新機能です。publisher.js API の 3 つのイベントで投稿およびソーシャル投稿アクションがサポートされるようになり、これらのアクションとやりとりするカスタムコンソールコンポーネントを作成できるようになりました。
追加されたのは以下の3つです。
publisher.selectAction
サポートされる値に、FeedItem.TextPost、標準 Chatter 投稿アクション、およびSocialPostAPIName.SocialPost、ソーシャル投稿アクションが追加されました。
publisher.setActionInputValues
targetFields が、FeedItem.TextPost および SocialPostAPIName.SocialPost で使用可能になりました。
invokeAction
サポートされる値に、FeedItem.TextPost、標準 Chatter 投稿アクション、およびSocialPostAPIName.SocialPost、ソーシャル投稿アクションが追加されました。
こんな感じの新機能が追加されたみたいです。
...さてこのPublisher.js APIですが、つかったことがありませんでした。リリースノートに「Publisher.js APIについてのドキュメントはこちら」とリンクが貼ってあったので新機能ではありませんが、ちょっと確認してみました。
Publisher.js APIの使い方
はじめにサンプルコードについてです。ドキュメント内に記載されていたものをつかって実際に動作確認したコードをGistにアップしました。エラーが解決できなかった『support:portalPublisher』タグの処理をコメントアウトしてしまいましたが、それ以外は問題なく動作します。
この処理を試してみた時に『無効なコンポーネント:apex:emailPublisher』というようなエラーが発生しました。検索してもあまり情報がみつからなかったのですが、試してみた感じだと必要な設定で有効化されていないものがあるとエラーになると思われます。
おそらく以下の機能を有効化する必要があると思います。
- サポート設定のケースフィードアクションおよびフィード項目を有効化
- メール to ケース
試行錯誤しながらだったので確証はありませんが、エラーが発生した場合はこの辺の有効化を試してみると解決すると思います。
ひとまずこれでVisualforceページの準備ができました。standardControllerを利用するのでURLパラメータでケースIDを渡して表示してみると次のエラーメッセージが表示されました。
『ケースフィードページレイアウトでのみ使用できる』とのことです。
この『ケースフィードページレイアウト』ですが、ケースオブジェクトにはページレイアウト作成時に専用の設定があります。『フィードベースのレイアウト』にチェックをつけることで『ケースフィードページレイアウト』を用意することができます。
作成したレイアウトをページレイアウトの割り当て設定で対象レイアウトとして割り当てます。これで先程エラーになったVisualforceページが正常に表示されるようになります。
LogCallなど他のリンクを選択すると対象コンポーネントが表示されます。
コメントアウトした機能やその他動かない箇所がありますが、まずはこんな感じです。
このサンプルの機能はおそらく本来はパブリッシャーアクション内で使用するための機能だと思います。というわけでVFではなく詳細ページで確認してみます。ページレイアウトの割り当てはしてあるので編集ページを開くだけで大丈夫です。
これがフィードベースのレイアウトです。通常のレイアウトとはかなり雰囲気が異なります。フィードタブを選択するとChatterフィードが表示されます。ここからパブリッシャーアクションが実行できます。
先ほどのVisualforceページで表示された機能がパブリッシャーアクション内でも同じように使用できます。サンプルなので完璧なデザインというわけではありませんが、Publisher.js APIでどんなことができるか確認できると思います。
今回確認できたのはこんな感じです。