Edited at

Chatterが有効化されているか判定する

More than 5 years have passed since last update.

ChatterのプロファイルベースのロールアウトがSummer'14からGAとなりました(有効化するためにはサポートへの連絡が必要)。

これによって、組織としてはChatterを有効化してもユーザレベルではChatterを無効化することができるようになりました。そのため、利用しているユーザがChatterを利用できるか判定するための方法が変わってきます。

ということで、Chatterが利用できるか判定する方法を調べてみました。


有効化していない場合

組織単位でChatterが有効化されているかチェックする


Apex

ConnectApi.OrganizationSettings o = ConnectApi.Organization.getSettings();

System.debug('Chatter=' + o.features.chatter);


有効化した場合

ユーザごとにChatterが有効化されているかチェックする


Apex

ConnectApi.UserSettings u = ConnectApi.Organization.getSettings().userSettings;

System.debug('Chatter=' + u.hasChatter);

基本的には、ConnectApiを叩けば値を取得できます。UserSettingsクラスのhasChatterはChatterのプロファイルベースのロールアウトを有効化していない状態でも値を取得できたので、有効化した場合の書き方をしておけば、どちらの状況でも対応できそうです。

ただ、UserSettingsのhasChatterはAPIレファレンスに載っていないようなので今後変更になるかもしれません。