Garoonで、以下のページの[プロフィール]情報を取得することはできますか?
アカウント設定: https://{subdomain}.cybozu.com/settings/profile
- コメント:
- 基本情報: 表示名, 名前, よみがな, 所属組織, 優先する組織, 誕生日, 入社日, 従業員ID, タイムゾーン, 言語
- 連絡先情報: Emailアドレス, モバイルフォン, 電話番号, 内線, Skype名
- その他: 別言語での表示名, URL, 利用中のサービス
やりたいこと: ワークフローで申請の作成時、テキストボックスに社員番号(従業員ID)を自動セットする。
ユーザー情報のその他の項目値を取得したいので、AdminGetUserDetailByIdsではなくBaseGetUsersByIdを試してみましたが、返ってくるのは、「表示名, Emailアドレス, 電話番号, コメント」まででした。それ以外の項目は参照することができないのでしょうか?
サンプルコード:
/**
* Moment.js
* https://js.cybozu.com/momentjs/2.22.1/moment.min.js
*/
(function($) {
"use strict";
var host = window.location.origin;
/**
* ログインユーザー情報の取得
* https://developer.cybozu.io/hc/ja/articles/115003721263
*/
var user = garoon.base.user.getLoginUser();
console.log(user);
// 取得した値の例
// {
// id: '2',
// garoonId: '3',
// code: 'sato',
// name: '佐藤 昇',
// email: 'sato@cybozu.co.jp',
// url: 'http://cybozu.com',
// phone: '03-0000-0000',
// timezone: 'Asia/Tokyo',
// language: 'ja'
// }
/**
* 共通SOAPコンテンツ
* ${XXXX}の箇所は実施処理等に合わせて置換して使用
*/
var SOAP_TEMPLATE =
'<?xml version="1.0" encoding="UTF-8"?>' +
'<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">' +
'<soap:Header>' +
'<Action>${ACTION}</Action>' +
'<Security>' +
'<UsernameToken>' +
'<Username>${USERNAME}</Username>' +
'<Password>${PASSWORD}</Password>' +
'</UsernameToken>' +
'</Security>' +
'<Timestamp>' +
'<Created>${CREATED}</Created>' +
'<Expires>${EXPIRES}</Expires>' +
'</Timestamp>' +
'<Locale>${LOCALE}</Locale>' +
'</soap:Header>' +
'<soap:Body>' +
'<${ACTION}>' +
'<parameters${ATTRIBUTE}>${PARAMETERS}</parameters>' +
'</${ACTION}>' +
'</soap:Body>' +
'</soap:Envelope>';
/**
* ワークフロー申請の作成画面が表示されたときのイベント
* https://developer.cybozu.io/hc/ja/articles/115000804806
*/
garoon.events.on("workflow.request.create.show", function(event) {
var userRequest = SOAP_TEMPLATE;
// SOAPパラメータを構築
userRequest = userRequest.split('${ACTION}').join('BaseGetUsersById');
userRequest = userRequest.replace('${USERNAME}', '');
userRequest = userRequest.replace('${PASSWORD}', '');
userRequest = userRequest.replace('${CREATED}', '');
userRequest = userRequest.replace('${EXPIRES}', moment().add(+9, 'hours').format('YYYY-MM-DDTHH:mm:ssZ'));
userRequest = userRequest.replace('${LOCALE}', 'ja');
userRequest = userRequest.replace('${PARAMETERS}', '<user_id>' + user.garoonId + '</user_id>');
userRequest = userRequest.replace('${ATTRIBUTE}', ' xmlns=""');
var url = host + '/g/cbpapi/base/api.csp';
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('Content-Type', 'text/xml');
xhr.onload = function() {
if (xhr.status === 200) {
// success
console.log(xhr.responseText);
} else {
// error
console.log(xhr.responseText);
}
};
xhr.send(userRequest);
console.log(userRequest);
});
})(jQuery)