現在表示中:

概要

AEM Communities のスコアおよびバッジ機能では、コミュニティメンバーを識別して報奨を与えることができます。

スコアとバッジの主な要素を以下に示します。

  • コミュニティ内のメンバーの役割を識別するために割り当てるバッジ
  • 参加を奨励するためにメンバーに授与するバッジ(作成されたコンテンツの量に基づく基本スコア)
  • メンバーをエキスパートとして識別するためのバッジ(作成されたコンテンツの質に基づく高度なスコア

初期リリースでは、バッジの割り当てと基本スコア(投稿の量に基づく報奨)を使用できます。設定と管理には CRXDE Lite を使用します。

高度なスコア用のアドオンパッケージを使用すると、エキスパートを識別する目的で、投稿の質に基づく報奨を与えることができます。さらに、スコアとバッジの設定および管理をグラフィカルな UI で実行できるようになります。

スコアとバッジは、デフォルトでは有効ではありません。スコアの有効化の節を参照してください。

警告:

CRXDE Lite で表示される実装の構造は、UI が使用可能になると変化する場合があります。

バッジ

バッジはコミュニティ内でのメンバーの役割または地位を表すためのもので、メンバーの名前の下に配置されます。バッジは画像で表示される場合も、名前で表示される場合もあります。画像として表示される場合、名前はアクセシビリティのための代替テキストとして使用されます。

デフォルトでは、バッジは以下のリポジトリにあります。

  • /etc/community/badging/images

別の場所に格納する場合は、バッジに誰でもアクセスできるようにする必要があります。

UGC 内では、割り当てられたバッジと、ルールに従って獲得されたバッジが区別されます。現在、割り当てられたバッジはテキストとして表示され、獲得したバッジは画像として表示されます。

割り当てられたバッジ

役割ベースのバッジは、管理者がコミュニティメンバーに対し、各メンバーのコミュニティ内での役割に基づいて割り当てるものです。

割り当てられた(および授与された)バッジは、選択した SRP に格納され、直接アクセスできません。GUI が使用可能になるまでは、役割ベースのバッジを割り当てるには、コードまたは cURL を使用する方法しかありません。cURL を使用する方法については、バッジの割り当てと取り消しの節を参照してください。

このリリースには、以下の 3 つの役割ベースのバッジが含まれています。

  • モデレーター
       /etc/community/badging/images/moderator/jcr:content/moderator.png
  • グループ管理者
       /etc/community/badging/images/group-manager/jcr:content/group-manager.png
  • 権限を持つメンバー
       /etc/community/badging/images/privileged-member/jcr:content/privileged-member.png

授与されたバッジ

報奨ベースのバッジは、スコアサービスがコミュニティ内でのメンバーのアクティビティを一定のルールで評価し、その結果としてメンバーに付与されるものです。

アクティビティに対する報奨としてバッジを表示するには、以下の 2 つの設定をする必要があります。

  • バッジを機能コンポーネントに対して有効化します。
  • スコアルールとバッジルールを、コンポーネントが配置されているページ(または上位ページ)に適用します。

このリリースには、以下の 3 つの報奨ベースのバッジが含まれています。

  • ゴールド
       /etc/community/badging/images/gold-badge/jcr:content/gold.png
  • シルバー
       /etc/community/badging/images/silver-badge/jcr:content/silver.png
  • ブロンズ
       /etc/community/badging/images/bronze-badge/jcr:content/bronze.png

注意:

不適切な投稿としてフラグが付けられた場合に、その投稿にマイナスのポイントを割り当て、スコアの値に反映させるようなスコアルールを設定できます。ただし、一度バッジを獲得した後は、スコアポイントの減点やスコアルールの変更をおこなっても、バッジが自動的に削除されることはありません。

授与されたバッジは、割り当てられたバッジと同じ方法で取り消すことができます。バッジの割り当てと取り消しの節を参照してください。今後の機能改善により、メンバーのバッジを管理する UI が追加される予定です。

カスタムバッジ

カスタムバッジを作成し、バッジルールに指定することができます。

バッジは以下の条件を満たしている必要があります。

  • 高さ 26 ピクセル、72 ppi を推奨
  • PNG や JPG などの画像形式である
  • リポジトリ内の誰でも読み取り可能な場所に配置されている
  • cq:Page ノードで構成されていて、そのノードの jcr:content が画像の nt:file ノードである
  • jcr:content ノードに以下のものが含まれている
    • プロパティ:jcr:title
    • :画像の代替テキストに使用するわかりやすいタイトル

カスタムバッジはパブリッシュ環境にレプリケートする必要があります。

スコアの有効化

スコアはデフォルトで有効になっていません。スコアとバッジ授与を設定および有効化する基本的な手順は以下のとおりです。

コンテンツに対するルールの適用

スコアとバッジを有効にするには、サイトのコンテンツツリーのノードに scoringRules プロパティと badgingRules プロパティを追加します。

サイトが公開済みの場合は、すべてのルールを適用してコンポーネントを有効にした後に、サイトを再公開します。

バッジを有効にしたコンポーネントには、現在のノードまたはその上位ノードのルールが適用されます。

ノードのタイプが cq:Page (推奨)の場合は、CRXDE|Lite を使用して、その jcr:content ノードに適切なプロパティを追加します。

プロパティ 説明
badgingRules String[] バッジルールの配列リスト
scoringRules String[] スコアルールの配列リスト

例:コミュニティコンポーネントガイドの scoringRules と badgingRules

注意:

スコアルールがバッジ授与に影響を与えていないように見える場合は、スコアルールがバッジルールの scoringRules でブロックされていないかを確認してください。バッジルールの節を参照してください。

コンポーネントに対するバッジの有効化

スコアルールとバッジルールは、オーサリングモードでコンポーネント設定を編集してバッジを有効にしたコンポーネントのインスタンスに対してのみ有効です。

コンポーネントインスタンスでバッジを表示するかどうかは、新しいブール型プロパティの allowBadges で指定できます。このプロパティを設定するには、更新されたコンポーネント編集ダイアログの「バッジを表示」チェックボックスを使用します。

例:フォーラムコンポーネントインスタンスの allowBadges

スコアルール

スコアルールは、バッジを授与するためのスコア計算の基礎となるものです。

ごく簡単に言うと、スコアルールは、1 つまたは複数のサブルールから成るリストです。スコアルールは、バッジが有効化されているときに、適用するルールを特定するためにコミュニティサイトコンテンツに適用されます。

スコアルールは継承されますが、付加的ではありません。次に例を示します。

  • ページ 2 にスコアルール 2 が含まれていて、その上位ページのページ 1 にスコアルール 1 が含まれている場合は、
  • ページ 2 のコンポーネントに対してアクションがおこなわれると、ルール 1 とルール 2 の両方が呼び出されます。
  • このとき、両方のルールに同じトピック/動詞に対する適用可能なサブルールが含まれている場合は、
    • ルール 2 のサブルールのみがスコアに影響を与えます。
    • 両方のサブルールから生じるスコアが合計されるわけではありません。

1 つ以上のスコアルールが存在するときは、ルールごとに分けてスコアが管理されます。

スコアルールは cq:Page タイプのノードであり、その jcr:content ノードのプロパティで、ルールを定義するサブルールのリストを指定します。

スコアは SRP に格納されます。

注意:

ベストプラクティスは、各スコアルールに一意の名前を付けることです。

スコアルールの名前はグローバルレベルで一意にする必要があり、末尾を同じ名前にしてはなりません。

禁止されている例を以下に示します。
    /etc/community/scoring/rules/site1/forums-scoring
    /etc/community/scoring/rules/site2/forums-scoring

スコアサブルール

スコアサブルールには、コミュニティへの参加状況を表す値を詳細に設定するプロパティが含まれています。

それぞれのスコアサブルールでは、以下を指定します。

  • 追跡対象となるアクティビティ
  • 関係する具体的なコミュニティ機能
  • 付与されるポイント数

デフォルトではアクションを実行したメンバーにポイントが付与されますが、サブルールでコンテンツの所有者にポイントを付与するよう設定することも可能です(forOwner)。

各サブルールには、1 つ以上のスコアルールを含めることができます。

通常、サブルールの名前は「主語、目的語、動詞」というパターンに従います。  例:

  • member-comment-create
  • member-receive-vote

サブルールは cq:Page タイプのノードであり、その jcr:content ノードのプロパティで動詞とトピックを指定します。

プロパティ タイプ 値の説明
VERB(動詞) Long
  • 必須です。動詞はイベントアクションに対応します。
  • 少なくとも 1 つの動詞プロパティが必要です。
  • 動詞はすべて大文字で入力する必要があります。
  • 複数の動詞プロパティを設定できますが、重複はできません。
  • 値はこのイベントに適用するスコアです。
  • 値は正でも負でも構いません。
  • このリリースでサポートされる動詞のリストについては、トピックと動詞の節を参照してください。
topics String[]
  • オプションです。サブルールを、イベントトピックで識別されるコミュニティコンポーネントのみに制限します。
  • 指定する場合は、イベントトピックの複数値文字列を指定します。
  • このリリースで使用できるトピックについては、トピックと動詞の節を参照してください。
  • デフォルトでは、動詞に関連するすべてのトピックに適用されます。
forOwner Boolean
  • オプションです。メンバーが自分の所有するコンテンツを操作している場合は関係ありません。
  • true の場合は、操作されたコンテンツの所有者にスコアが適用されます。
  • false の場合は、操作をおこなうメンバーにスコアが適用されます。
  • デフォルトは false です。
scoringType String
  • オプションです。スコアエンジンを指定します。
  • 「basic」の場合は、量に基づくスコアエンジンが使用されます。
    • このリリースに含まれています。
  • 「advanced」の場合は、質と量に基づくスコアエンジンが使用されます。
  • デフォルトは「basic」です。

このリリースに含まれているスコアルールとサブルール

このリリースには、以下の 2 つのフォーラム機能用のスコアルールが含まれています(それぞれフォーラム機能のフォーラムコンポーネントとコメントコンポーネントで使用します)。

  1. /etc/community/scoring/rules/comments-scoring
    • subRules[] =
      /etc/community/scoring/rules/sub-rules/member-comment-create
      /etc/community/scoring/rules/sub-rules/member-receive-vote
      /etc/community/scoring/rules/sub-rules/member-give-vote
      /etc/community/scoring/rules/sub-rules/member-is-moderated
  2. /etc/community/scoring/rules/forums-scoring
    • subRules[] =
      /etc/community/scoring/rules/sub-rules/member-forum-create
      /etc/community/scoring/rules/sub-rules/member-receive-vote
      /etc/community/scoring/rules/sub-rules/member-give-vote
      /etc/community/scoring/rules/sub-rules/member-is-moderated

注意:

  • rules ノードと sub-rules ノードは、どちらも cq:Page タイプです。
  • subRules は、ルールの jcr:content ノードの String[] タイプの属性です。
  • sub-rules は、複数のスコアルール間で共有できます。
  • rules は、リポジトリ内の誰でも読み取れる場所に配置する必要があります。
    • ルール名は場所にかかわらず一意である必要があります。

カスタムスコアルールのアクティベート

オーサー環境でスコアルールまたはサブルールの変更や追加をおこなった場合は、それをパブリッシュ環境にインストールする必要があります。

バッジルール

バッジルールでは、以下を指定することで、スコアルールをバッジにリンクします。

  • 使用するスコアルール
  • 特定のバッジを授与するのに必要なスコア

バッジルールは cq:Page タイプのノードであり、その jcr:content ノードのプロパティで、スコアルールをスコアおよびバッジと関連付けます。

バッジルールは必須の thresholds プロパティから成り、このプロパティには、バッジに対応付けるスコアの順序付きリストを指定します。スコアは小さい値から順に並べる必要があります。例:

  • 1|/etc/community/badging/images/bronze-badge/jcr:content/bronze.png
    • 1 ポイント獲得すると、ブロンズバッジが授与されます。
  • 60|/etc/community/badging/images/silver-badge/jcr:content/silver.png
    • 60 ポイント累積すると、シルバーバッジが授与されます。
  • 80|/etc/community/badging/images/gold-badge/jcr:content/gold.png
    • 80 ポイント累積すると、ゴールドバッジが授与されます。

バッジルールは、ポイントの累積方法を決定するスコアルールと組み合わせて使用されます。コンテンツに対するルールの適用の節を参照してください。

バッジルールの scoringRules プロパティは、そのバッジルールに組み合わせ可能なスコアルールを制限します。

注意:

ベストプラクティスは、各 AEM サイトに固有のバッジ画像を作成することです。

プロパティ タイプ 値の説明
thresholds String[] (必須)「number|path」という形式の複数値文字列
  • number = スコア
  • | = 縦線の文字(U+007C)
  • path = バッジ画像リソースへのフルパス
文字列は、number の値が小さいものから順に並べる必要があります。また、数値とパスの間にスペースを入れないようにします。
エントリの例:
80|/etc/community/badging/images/gold-badge/jcr:content/gold.png
badgingType String (オプション)「basic」か「advanced」のどちらかのスコアエンジンを指定します。高度なスコアエンジンが必要な場合は、(ベータ)高度なスコアとバッジを参照してください。
デフォルトは「basic」です。
scoringRules String[] (オプション)バッジルールを特定のスコアイベントに限定するためのスコアルールを複数値文字列で指定します。

このリリースに含まれるバッジルール

このリリースには、フォーラムとコメントのスコアルールに対応する 2 つのバッジルールが含まれています。

  • /etc/community/badging/rules/comments-badging
  • /etc/community/badging/rules/forums-badging

注意:

  • rules のノードは、cq:Page タイプです。
  • rules は、リポジトリ内の誰でも読み取れる場所に配置する必要があります。
    • ルール名は場所にかかわらず一意である必要があります。

カスタムバッジルールのアクティベート

オーサー環境でバッジルールまたはバッジ画像の変更や追加をおこなった場合は、それをパブリッシュ環境でインストールする必要があります。

バッジの割り当てと取り消し

以下の cURL コマンドは、バッジの割り当てと取り消しの HTTP リクエストで必要とされる要素を示しています。基本的な形式は以下のとおりです。

      cURL  -i  -X POST  -H header  -u signin  -F operation  -F badge  member-profile-url

header  = "Accept:application/json"
  サーバーに渡すカスタムヘッダー(必須)

signin = administrator-id:password
  例:admin:admin

operation = ":operation=social:assignBadge"  または ":operation=social:deleteBadge"

badge = "badgeContentPath=badge-image-file"

badge-image-file = リポジトリ内のバッジ画像ファイルの場所
  例:/etc/community/badging/images/moderator/jcr:content/moderator.png

member-profile-url = パブリッシュ環境のメンバーのプロファイルのエンドポイント
  例:http://<server>:<port>/home/users/geometrixx-outdoors/weston.mccall@dodgit.com/profile.social.json

注意:

member-profile-url は、

例:

Weston McCall にモデレーターバッジを割り当て

curl -i -X POST -H "Accept:application/json" -u admin:admin -F ":operation=social:assignBadge" -F "badgeContentPath=/etc/community/badging/images/moderator/jcr:content/moderator.png" http://localhost:4503/home/users/geometrixx-outdoors/weston.mccall@dodgit.com/profile.social.json

Aaron McDonald に割り当てられたシルバーバッジを取り消し

curl -i -X POST -H "Accept:application/json" -u admin:admin -F ":operation=social:deleteBadge" -F "badgeContentPath=/etc/community/badging/images/silver/jcr:content/silver.png" http://localhost:4503/home/users/geometrixx-outdoors/aaron.mcdonald@mailinator.com/profile.social.json

注意:

cURL を使用したバッジの割り当てと取り消しは、どのバッジ画像でも機能します。ただし、獲得されたバッジではなく割り当てられたバッジの場合は、割り当てられたバッジとしてマークされ、相応に処理されます。

カスタムコンポーネント用のスコアとバッジ

カスタムコンポーネント用に作成されたイベントトピックを動詞と関連付けることで、カスタムコンポーネント用のスコアルールとバッジルールを作成できます。

トピックと動詞

メンバーがコミュニティ機能を操作すると、通知やスコアなどの非同期リスナーを呼び出すイベントが送信されます。

コンポーネントの SocialEvent インスタンスは、これらのイベントを、あるトピックに対して発生するアクションとして記録します。SocialEvent には、アクションに関連付けられた動詞を返すメソッドが含まれています。アクション動詞 の間には、n 対 1 の関係があります。

以下のいくつかの表では、このリリースで提供されるコミュニティコンポーネントに関し、スコアサブルールで使用できる各トピックと、そのトピック用に定義されている動詞を示します。

注意:

コンポーネントインスタンスでバッジを表示するかどうかは、新しいブール型プロパティの allowBadges で指定できます。このプロパティを設定するには、更新されたコンポーネント編集ダイアログの「バッジを表示」チェックボックスを使用します。

カレンダーコンポーネント
SocialEvent トピック = com/adobe/cq/social/calendar

動詞 説明
POST メンバーがカレンダーイベントを作成する
ADD メンバーがカレンダーイベントについてコメントする
UPDATE メンバーのカレンダーイベントまたはコメントが編集される
DELETE メンバーのカレンダーイベントまたはコメントが削除される

 

コメントコンポーネント
SocialEvent トピック = com/adobe/cq/social/comment

動詞 説明
POST メンバーがコメントを作成する
ADD メンバーがコメントに返信する
UPDATE メンバーのコメントが編集される
DELETE メンバーのコメントが削除される

 

ファイルライブラリコンポーネント
SocialEvent トピック = com/adobe/cq/social/fileLibrary

動詞 説明
POST メンバーがフォルダーを作成する
ATTACH メンバーがファイルをアップロードする
UPDATE メンバーがフォルダーまたはファイルを更新する
DELETE メンバーがフォルダーまたはファイルを削除する

 

フォーラムコンポーネント
SocialEvent トピック = com/adobe/cq/social/forum

動詞 説明
POST メンバーがフォーラムトピックを作成する
ADD メンバーがフォーラムトピックに返信する
UPDATE メンバーのフォーラムトピックまたは返信が編集される
DELETE メンバーのフォーラムトピックまたは返信が削除される

 

ジャーナルコンポーネント
SocialEvent トピック = com/adobe/cq/social/journal

動詞 説明
POST メンバーがブログ記事を作成する
ADD メンバーがブログ記事にコメントする
UPDATE メンバーのブログ記事またはコメントが編集される
DELETE メンバーのブログ記事またはコメントが削除される

 

Q&A コンポーネント
SocialEvent トピック = com/adobe/cq/social/qna

動詞 説明
POST メンバーが Q&A の質問を作成する
ADD メンバーが Q&A の回答を作成する
UPDATE メンバーの Q&A の質問または回答が編集される
SELECT メンバーの回答が選択される
UNSELECT メンバーの回答の選択が解除される
DELETE メンバーの Q&A の質問または回答が削除される

 

レビューコンポーネント
SocialEvent トピック = com/adobe/cq/social/review

動詞 説明
POST メンバーがレビューを作成する
UPDATE メンバーのレビューが編集される
DELETE メンバーのレビューが削除される

 

評価コンポーネント
SocialEvent トピック = com/adobe/cq/social/tally/rating

動詞 説明
ADD RATING メンバーのコンテンツの評価が上がった
REMOVE RATING メンバーのコンテンツの評価が下がった

 

投票コンポーネント
SocialEvent トピック = com/adobe/cq/social/tally/voting

動詞 説明
ADD VOTING メンバーのコンテンツに賛成票が投じられた
REMOVE VOTING メンバーのコンテンツに反対票が投じられた

 

モデレート対応コンポーネント
SocialEvent トピック = com/adobe/cq/social/moderation

動詞 説明
DENY メンバーのコンテンツが拒否される
FLAG-AS-INAPPROPRIATE メンバーのコンテンツにフラグが付けられる
UNFLAG-AS-INAPPROPRIATE メンバーのコンテンツのフラグが解除される
ACCEPT メンバーのコンテンツがモデレーターにより承認される
CLOSE メンバーがコメントの編集と返信を閉じる
OPEN メンバーがコメントを再度開く

カスタムコンポーネントイベント

カスタムコンポーネントでインスタンス化される SocialEvent は、そのコンポーネントのイベントを、あるトピックに対して発生するアクションとして記録します。

スコア機能に対応するために、SocialEvent は、各アクションに対して適切な動詞が返されるよう getVerb() メソッドをオーバーライドする必要があります。アクションに対して返される動詞は、一般的に使用される動詞(POST など)にすることも、コンポーネント専用の動詞(ADD RATING など)にすることもできます。アクション動詞の間には、n 対 1 の関係があります。

トラブルシューティング

バッジが表示されない

スコアルールとバッジルールを Web サイトのコンテンツに適用したのに、バッジがどのアクティビティにも授与されない場合は、そのコンポーネントのインスタンスでバッジが有効化されているかを確認してください。

コンポーネントに対するバッジの有効化を参照してください。

スコアルールが反映されない

スコアルールとバッジルールを Web サイトのコンテンツに適用したのに、バッジが一部のアクションにしか授与されない場合は、バッジルールの適用先のスコアルールが制限されていないかを確認してください。

バッジルールscoringRules プロパティを参照してください。

大文字と小文字のタイプミス

ほとんどのプロパティや値(特に動詞)では、大文字と小文字が区別されます。スコアサブルールで動詞を使用するときは、動詞をすべて大文字にする必要があります。 

この機能が予想どおり動作しない場合は、データが正しく入力されているかを確認してください。

追加情報

詳しくは、開発者向けのスコアとバッジの重要事項のページを参照してください。

高度なスコアエンジンについて詳しくは、(ベータ)高度なスコアとバッジを参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー