現在GakuNin mAPで利用できるAPIは2種類あります。いずれもOpenSocialをベースとしたフォーマットでレスポンスはJSON形式です。
- #people API
グループを指定してそのメンバーに関する情報を取得するためのAPI - #groups API
SPコネクタに接続しているグループに関する情報を取得するためのAPI
いずれも、認証は学認におけるSPメタデータに記載されているTLSクライアント証明書認証により行います。証明書の extended Key Usage (eKU) に clientAuth が記載されていなければなりません。
people API
リクエストURL
メンバーのみを取得
https://map.gakunin.nii.ac.jp/api/people/@me/[グループID]?lang=[言語]管理者のみを取得
https://map.gakunin.nii.ac.jp/api/people/@me/[グループID]%2Fadmin?lang=[言語]
[グループID] は、isMemberOfで取得することができる値をURLエンコードした値である。
例えば、isMemberOfで取得した値が下記の場合は、
(元の値)<span class="nolink">https://map.gakunin.nii.ac.jp/gr/GakuNinTF</span>
URLエンコード変換後は、下記となる。
(変換後の値)https%3A%2F%2Fmap.gakunin.nii.ac.jp%2Fgr%2FGakuNinTF
- %3A、%2Fのアルファベットは小文字も許容する。
また、短縮したグループIDも利用することが可能である。
isMemberOfが上記の(元の値)とした場合、短縮したグループIDは、GakuNinTFとなる。
管理者を取得する場合は、%2Fadmin を付与する。
管理者を取得する際の [グループID] にSPコネクタを指定する場合は、SP管理者が取得できる。
設定値と取得できる値をまとめたものを下記に示す。
グループID |
%2Fadmin |
取得値 |
---|---|---|
グループを指定 |
無 |
グループメンバー一覧 |
〃 |
有 |
グループ管理者一覧 |
SPコネクタを指定 |
無 |
SPコネクタに接続するグループの全メンバー一覧 |
〃 |
有 |
SP管理者一覧 |
[言語] はオプション項目であり、レスポンスで返す言語を指定する。
指定できるTYPEは、en と ja であり、下記の優先順位でレスポンスを返す。
リクエストURLの言語指定 > 英語入力 > 日本語入力
なお、英語、日本語ともGakuNin mAPに登録がなければ、当該属性自体が存在しない状態で返す。
下記に例を示す。
GakuNin mAPに、氏名「日/英」、自己紹介「英」、所属「日/英とも空欄」で登録されていた場合、
リクエストの言語指定が「ja」であった場合は、氏名「日」、自己紹介「英」、所属「無し」を、
リクエストの言語指定が「en」であった場合は、氏名「英」、自己紹介「英」、所属「無し」を、
リクエストの言語指定がない場合は、氏名「英」、自己紹介「英」、所属「無し」を返す。
項目 |
日本語の登録 |
英語の登録 |
lang=ja |
lang=en |
言語指定なし |
---|---|---|---|---|---|
氏名 |
有 |
有 |
日本語 |
英語 |
英語 |
自己紹介 |
- |
有 |
英語 |
英語 |
英語 |
所属 |
- |
- |
- |
- |
- |
レスポンス
\{ "totalResults" : <ユーザ数>, "entry" : \[ \{ "id" : \{"mAPのeduPersonTargetedID"\}, "displayName" : <"氏名">, "aboutMe" : <"自己紹介">, "emails" : \[ \{"type" : "email", "value": <"mAPに登録したメールアドレス">\} \], "languagesSpoken" : \[ \{"type": "languageSpoken", "value": <"mAPに登録した使用言語">\} \], "organizations" : \[ \{"type":"organization","value" :\{"name":< "mAPに登録した所属">\}\} \], "map_IdPEntityIDs" : \[ \{"type" : "map_IdPEntityID", "value" : "https://xxxxxx/idp/shibboleth"\}, \{"type" : "map_IdPEntityID", "value" : "https://zzzzzz/idp/shibboleth"\} \], ・・・ \} \]\}
フィールド名 |
内容 |
備考 |
---|---|---|
totalResults |
ユーザ数(全ての属性が許可されない場合そのユーザ分は差し引く) |
Required |
id |
mAPのeduPersonTargetedID |
|
displayName |
氏名 |
|
aboutMe |
自己紹介 |
|
emails |
メールアドレス |
|
languages Spoken |
使用言語 |
|
organizations |
所属 |
|
map_IdPEntityIDs |
認証に利用するIdP(entityID) |
|
-
- Required以外のフィールドは、利用者が同意したフィールドのみ送られます。また、全てのフィールドが存在しない(同意されていないもしくはSPが要求していない)場合はオブジェクトごと無くなります。
groups API
リクエストURL
・SPコネクタに接続しているグループ情報の取得
https://map.gakunin.nii.ac.jp/api/groups/@me?lang=[言語]
※クライアント証明書を検証する。(該当SPのみ利用できる)
[言語] はオプション項目であり、レスポンスで返す言語を指定する。
指定できるTYPEは、enとjaであり、下記の優先順位でレスポンスを返す。
リクエストURLの言語指定 > 英語入力 > 日本語入力
なお、英語、日本語ともGakuNin mAPに登録がなければ、当該属性自体が存在しない状態で返す。
下記に例を示す。
GakuNin mAPに、グループ名「日/英」、紹介文「日」で登録されていた場合、
リクエストの言語指定が「ja」であった場合は、グループ名「日」、紹介文「日」を、
リクエストの言語指定が「en」であった場合は、グループ名「英」、紹介文「日」を、
リクエストの言語指定がない場合は、グループ名「英」、紹介文「日」を返す。
項目 |
日本語の登録 |
英語の登録 |
lang=ja |
lang=en |
言語指定なし |
---|---|---|---|---|---|
グループ名 |
有 |
有 |
日本語 |
英語 |
英語 |
紹介文 |
有 |
無 |
日本語 |
日本語 |
日本語 |
レスポンス
上記リクエストのレスポンスを下記に示す。
\{ "totalResults" : <グループ数>, "entry" : \[ \{ "id" : <"グループID">, "title" : <"グループ名">, "description" : <"グループの紹介">, "map_totalMembers" : <グループの参加人数> \}, ・・・ \]\}
- グループIDは、isMemberOfで取得することができるURL形式の値
エラーレスポンス(共通)
●mAPでのエラーコード
400 |
APIのURL不正 |
403 |
・提示された証明書が学認参加SPのものでない場合 |
404 |
指定されたグループがない場合 |
※レスポンスに返すデータが0件の場合は空配列のentryを返す。