> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Social Activity

> いいね、フォロー、招待などのソーシャルアクションや、ユーザー間のダイレクトメッセージに対してOneSignalを使用してプッシュ通知を送信する方法を学びます。

OneSignalを使用して、ソーシャルアクティビティ（いいね、フォロー、招待）やユーザーメッセージについてユーザーに通知します。これらのアラートは、ユーザーがアプリで現在アクティブでない場合でも、再エンゲージメントを促進できます。

<Warning>
  OneSignalとプッシュ通知は、リアルタイムコミュニケーション用に明示的に設計されていません。両方のユーザーがアプリでアクティブでない場合のフォールバックとして使用するのが最適です。

  リアルタイムコミュニケーションには、次のような専用のライブチャットソリューションを検討してください：

  * [XMPP](https://xmpp.org/)
  * [Stream](https://getstream.io/chat/)
  * [Firebase Realtime Database](https://firebase.google.com/products/database)
</Warning>

***

## ソーシャルアクティビティ通知

ユーザーがソーシャルアクションに関与したときにプッシュ通知をトリガーします。

### 一般的なソーシャルアクション

| Action  | Example message              |
| ------- | ---------------------------- |
| Like    | "Annaがあなたの投稿にいいねしました。"       |
| Mention | "Leoがコメントであなたにメンションしました。"    |
| Tag     | "Saraがあなたを写真にタグ付けしました。"      |
| Invite  | "Benがあなたをイベントに招待しました。"       |
| Comment | "Mayaが返信しました：「すごい！」"         |
| Follow  | "Jamesがあなたをフォローし始めました。"      |
| Share   | "Alexが「ハワイアルバム」をあなたと共有しました。" |

### 要件

* ユーザーアクティビティと関係を追跡するバックエンドまたはCRM。
  * [統合](./integrations)
  * [データベース、DMP、CRM統合](./database-dmp-crm-integration)
* ユーザーを識別するためにOneSignalで設定された外部ID。
* [Create Notification API](/reference/create-message)の使用。

### セットアップ

#### 1. 外部IDでユーザーをマッピング

[エイリアスと外部ID](./users)を使用して、OneSignalでユーザーを一意に識別します。

#### 2. ソーシャルアクションを検出

バックエンドで、誰がアクションを実行し、誰に影響を与えるかを追跡します。

```json json theme={null}
{
  "action": "like",
  "actor_id": "user_b",
  "recipient_id": "user_a",
  "post_id": "xyz789"
}
```

#### 3. プッシュ通知を送信

OneSignal APIを使用して受信者に通知します：

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "contents": { "en": "user_b liked your photo." },
  "include_aliases": { "external_id": ["user_a"] }
}
```

### アドオン

* [メッセージパーソナライゼーション](./message-personalization)を使用して、ユーザー名、投稿タイトル、画像などのカスタムデータを挿入します！
* [アクティビティフィード](./create-an-activity-feed)を使用して、ソーシャルアラートの履歴を表示します。

***

## ダイレクト（ユーザー間）メッセージ

ユーザーに新しいメッセージがあることを知らせ、オプションでメッセージコンテンツまたはチャットへのディープリンクを含めます。

<Warning> プッシュ通知は、両方のユーザーがアプリでアクティブにチャットしていない場合のフォールバックとして使用するのが最適です。 </Warning>
ユーザーAがユーザーBにメッセージを送信し、Bが現在オンラインでないかチャット画面にいない場合にプッシュを送信します。

### セットアップ

#### 1. 外部IDでユーザーをマッピング

[エイリアスと外部ID](./users)を使用して、OneSignalでユーザーを一意に識別します。

#### 2. メッセージ送信時に通知をトリガー

バックエンドから、`include_aliases`フィールドを含む[Create Notification API](/reference/push-notification)を使用して受信者にプッシュを送信します：

```json theme={null}
{
  "include_aliases": {
    "external_id": ["USER_B_ID"]
  },
  "contents": { "en": "New message from Anna: 'Hey, you around?'" },
  "headings": { "en": "New Message" },
  "data": {
    "sender_id": "user_a",
    "conversation_id": "chat_1234",
    "click_action": "open_chat"
  }
}

```

### ベストプラクティス

* スパムを避ける：すべてのメッセージに対して通知を送信しないでください。バッチ処理を使用するか、X分間の非アクティブ後にのみアラートを送信します。
* ユーザー設定を尊重する：必要に応じて、ユーザーがメッセージ通知をミュートまたは無効にできるようにします。
* アプリでルーティングロジックを使用して会話を開きます。詳細については、[ディープリンク](./deep-linking)を参照してください。

***

## 関連記事

* [アクティビティフィードを作成](./create-an-activity-feed)
* [ディープリンク](./deep-linking)
* [メッセージパーソナライゼーション](./message-personalization)
* [トランザクショナルメッセージ](./transactional-messages)

***
