# API経由でプッシュ通知を送信する

*スキルレベル: エキスパート*

## 開始前に

* APIを介して通知をトリガーする機能は、TeamプランまたはBusinessプランで利用可能です。
* Adalo APIを介して複数のユーザーに直接通知を送信することはできません。
* 現時点では、ユーザーがどの画面に移動するかを設定することはできません。現時点では、アプリのホーム画面に移動します。
* アプリが[Xanoバックエンド](https://help.adalo.com/ja/integrations/xano)を使用している場合、[ユーザーIDを使用して特定のユーザーをターゲットにする](#targeting-by-user-id)必要があります。
  * ユーザーのすべてのエンドポイントを["As Self"で返す必要があります](https://help.adalo.com/ja/integrations/xano/xano-response)。

## リクエストの設定

### cURL

このエンドポイントを素早くテストしたい場合は、次のcurlをコマンドラインから実行してください。データをアプリのデータに置き換えることを忘れないでください！

```sh
curl --location 'https://api.adalo.com/notifications' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {Your App API Key}' \
--data-raw '{
  "appId": "{your-app-id}}",
  "audience": { "id": {userID} },
  "notification": {
    "titleText": "Hello There",
    "bodyText": "This is just a test..."
  }
}'
```

### リクエストヘッダー

APIリクエストの基本URLは次のとおりです:

```
https://api.adalo.com/notifications
```

[<br>](https://api.adalo.com)以下のヘッダーを含める必要があります:

```
Authorization: Bearer [Your App's API Key]
Content-Type: application/json
```

### リクエストボディ

APIリクエストで以下を指定する必要があります

* アプリID（Adaloでアプリを編集しているときのURLからApp IDを見つけることができます）
* 受信者のメールアドレスまたはユーザーID
* プッシュ通知のタイトルテキスト
* プッシュ通知の本文テキスト

#### メールアドレスでターゲット指定

```json
// 例：リクエストボディ（メール）
{
  "appId": "2bc38ea8-2eb1-4db0-974c-e9e031f2c0e0",
  "audience": { "email": "user@example.com" },
  "notification": {
    "titleText": "Hello There",
    "bodyText": "This is just a test..."
  }
}
```

#### ユーザーIDでターゲット指定

```json
// 例：リクエストボディ（ユーザーID）
{
  "appId": "2bc38ea8-2eb1-4db0-974c-e9e031f2c0e0",
  "audience": { "id": "123" },
  "notification": {
    "titleText": "Hello There",
    "bodyText": "This is just a test..."
  }
}
```

### サーバーレスポンス

成功したリクエストは2つのパラメータを返します:

* successful: \[count]
* failed: \[count]

"Successful"は通知がユーザーのデバイスに配信されたことを意味します。"Failed"はユーザーがもはやアプリにプッシュ通知を送信する権限を与えていないことを意味します。両方が0の場合、通知が送信されたユーザーはまだそのデバイスにアプリをインストールしていないことを意味します。

Adalo APIを使用してスケジュールされたプッシュ通知を送信する方法に関するビデオチュートリアルはこちらです:

{% embed url="<https://youtu.be/hNF0_EPbMDg>" %}

## 通知のトラブルシューティング

通知の問題をトラブルシューティングするためにチェックすることをお勧めするいくつかの要件があります。

**通知は、次の場合にのみ送信されます;**

1. 送信先の視聴者が存在します（「受信者」と設定されたユーザー）

**通知は、以下の条件を満たす場合にのみ受信されます**：

1. 受信者がデバイスにアプリをインストールしている場合。
2. 受信者がログインしているか、過去2週間以内にアプリでアクティビティを行っている場合、アクティブと見なされます。
3. 受信者が許可を許可している権限を持っている場合（通知許可）。
4. 受信者が \_**通知をトリガーするユーザーでない**\_こと。つまり、ログインしているユーザーが自分自身に通知をトリガーしていないこと。

{% hint style="warning" %}
iOS Nativeで通知が失敗しているがAndroidでは失敗していない場合は、Apple Developerアカウントで通知キーを削除して新しいビルドをプッシュしてください。
{% endhint %}

## ヘルプ

この記事に関する追加のヘルプが必要な場合は、いつでも[コミュニティフォーラム](https://forum.adalo.com/)で質問できます！投稿にこの記事へのリンクを貼り付けることも忘れずに！

チュートリアルやヘルプドキュメントのリクエストがありますか？[お知らせください！](https://ideas.adalo.com/tutorial-requests)
