通知を登録する

目次

通知を登録する

更新情報の通知を登録します。
登録した通知は、通知一覧のポートレットや通知画面で確認できます。

URL

クラウド版

https://sample.cybozu.com/g/api/v1/notification/items

パッケージ版

環境に合わせてそれぞれ以下を置き換えてください。

  • IP_ADDRESS_OR_HOST_NAME:Garoon のインストール先の IP アドレスまたはホスト名
  • INSTALL_IDENTIFER:Garoon のインストール識別子
Windows 環境
http://IP_ADDRESS_OR_HOST_NAME/scripts/INSTALL_IDENTIFER/grn.exe/api/v1/notification/items
Linux 環境
http://IP_ADDRESS_OR_HOST_NAME/cgi-bin/INSTALL_IDENTIFER/grn.cgi/api/v1/notification/items

HTTP メソッド

POST

利用できるバージョン

  • クラウド版 Garoon
  • パッケージ版 Garoon 5.0 以降

必要なアクセス権

  • 通知を登録するアプリケーションの利用権限

アプリケーション管理の API の外部通知を有効にしてください。
設定方法は、Garoon ヘルプの API の外部通知の設定( クラウド版 (External link) パッケージ版 (External link) )を参照してください。

リクエスト

パラメーター
パラメーター名 必須 説明
app 文字列 必須 外部通知コード
API の外部通知の設定( クラウド版 (External link) パッケージ版 (External link) )で設定した「外部通知コード」を指定します。
notificationKey 文字列 必須 通知キー
複数のユーザーに対して同じ通知を作成する場合には、すべてのユーザーで同じ値を指定します。
登録済みの通知を更新する場合には、更新する通知の notificationKey と同じ値を指定します。
operation 文字列 必須 通知の種類
次のいずれかの値を指定します。
  • add:新規通知データとして、外部通知を登録する
  • modify:更新通知データとして、外部通知を登録する
  • remove:削除通知データとして、外部通知を登録する
url 文字列 必須 通知に含まれる URL
API の外部通知の設定( クラウド版 (External link) パッケージ版 (External link) )の「許可する URL」に、指定する URL を指定してください。
title 文字列 必須 通知のタイトル
body 文字列 必須 通知の本文
icon 文字列 省略可 通知のアイコン
URL 形式でのみ指定できます。
API の外部通知の設定( クラウド版 (External link) パッケージ版 (External link) )の「許可するURL」に、指定する URL を設定してください。
省略した場合はベルの形のアイコンが通知アイコンとして設定されます。
destinations 配列 必須 通知先のリスト
destinations[].type 文字列 必須 通知先のタイプ
次のいずれかの値を指定します。
  • USER:ユーザー
destinations[].id 数値 条件必須 通知先の Garoon ユーザー ID
destinations[].code を指定しない場合は必須です。
destinations[].code 文字列 条件必須 通知先の Garoon ユーザー名(ログイン名)
destinations[].id を指定しない場合は必須です。
パッケージ版 Garoon の場合、ログイン名を公開する設定が必要です。
詳細は ユーザー情報の項目を変更する (External link) を参照してください。
リクエストの例
ヘッダー
1
2
3
4
{
  "X-Cybozu-Authorization": "QWRtaW5pc3RyYXRvcjpjeWJvenU=",
  "Content-Type": "application/json"
}

リクエストヘッダーの詳細は Garoon REST API の共通仕様 を参照してください。

ボディ
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
  "app": "System-01",
  "notificationKey": "set-notificationKey-1234",
  "operation": "add",
  "url": "https://www.example.com/news/1",
  "title": "Travel Request",
  "body": "You have a report pending your approval",
  "icon": "https://example.com/sample-icon.ico",
  "destinations": [
    {
      "id": "1",
      "type": "USER"
    }
  ]
}

レスポンス

プロパティ
プロパティ名 説明
moduleId 文字列 通知のアプリケーション ID
  • grn.schedule:スケジュール
  • grn.message:メッセージ
  • grn.bulletin:掲示板
  • grn.cabinet:ファイル管理
  • grn.phonemessage:電話メモ
  • grn.mail:メール
  • grn.workflow:ワークフロー
  • grn.report:マルチレポート
  • grn.space:スペース
  • grn.space.discussion:スペースのディスカッション
  • grn.space.todo:スペースの共有 ToDo
  • Cybozu Information:サイボウズからのお知らせ
  • x.n:外部通知
    n は数字で、外部通知の設定( クラウド版 (External link) パッケージ版 (External link) )で設定した順の連番です。
creator.id 数値 通知の作成者のユーザー ID
creator.code 文字列 通知の作成者のユーザー名
creator.name 文字列 通知の作成者のユーザーログイン名
createdAt 文字列 通知の作成日時
operation 文字列 通知の種類
  • add:新規通知データとして、外部通知を登録した場合
  • modify:更新通知データとして、外部通知を登録した場合
  • remove:削除通知データとして、外部通知を登録した場合
url 文字列 通知に含まれる URL
title 文字列 通知のタイトル
body 文字列 通知の本文
icon 文字列 通知のアイコン
isRead 真偽値 通知が既読かどうか
レスポンスの例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  "moduleId": "x.2",
  "notificationKey": "set-notificationKey-1234",
  "creator": {
    "id": "1",
    "code": "c000001",
    "name": "Noboru Satoh(Satoh Noboru); Sales Department"
  },
  "createdAt": "2017-09-26T06:25:18Z",
  "operation": "add",
  "url": "https://www.example.com",
  "title": "Travel Request",
  "body": "You have a report pending your approval",
  "icon": "https://example.com/sample-icon.ico",
  "isRead": false
}

サンプルコード

curl を使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
curl -X POST 'https://sample.cybozu.com/g/api/v1/notification/items' \
  -H 'X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=' \
  -H 'Content-Type: application/json' \
  -d '{
    "app": "System-01",
    "notificationKey": "set-notificationKey-1234",
    "operation": "add",
    "url": "https://www.example.com/news/1",
    "title": "Travel Request",
    "body": "You have a report pending your approval",
    "icon": "https://example.com/sample-icon.ico",
    "destinations": [
      {
        "id": "1",
        "type": "USER"
      }
    ]
  }'
Garoon REST API リクエストを送信する API を使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
const body = {
  app: 'System-01',
  notificationKey: 'set-notificationKey-1234',
  operation: 'add',
  url: 'https://www.example.com/news/1',
  title: 'Travel Request',
  body: 'You have a report pending your approval',
  icon: 'https://example.com/sample-icon.ico',
  destinations: [
    {
      id: 1,
      type: 'USER'
    }
  ]
};

await garoon.api('/api/v1/notification/items', 'POST', body);