何を実現したいのかを書きましょう
プラグインから、kintoneの登録ユーザ一覧を取得したい。
「保存」での入力チェック(バリデーション)で、アプリのE-mailフィールドに文字があるとき、それがkintoneの登録ユーザでなければNGの旨、表示したい。
発生した問題やエラーメッセージを具体的に書きましょう
kintoneの登録情報取得で、
https://xxxxx.cybozu.com/v1/csv/user.csv にGETで、headersに ‘X-Cybozu-Authorization’: xxxxxxxxx(admin権限のユーザ名:パスワードのbase64にした文字列) でアクセスしましたが、次のbodyが返却されます。
:{“code”:“CB_WA01”,“id”:“xxxxxxxx”,“message”:“ユーザーのパスワード認証に失敗しました。「X-Cybozu-Authorization」ヘッダーの値が正しくありません。”}
curlで成功し、カスタマイズjavascriptとして、axios.create、getメソッドで同じように実行すると成功します。
原因がわからず、悩んでいます。
実行したコードをコピー&ペーストしましょう
async function fetchKintoneUserEmails() {
return new Promise((resolve, reject) => {
// プロキシ設定の成功時に呼ばれるコールバック関数
const successCallback = function(body, status, headers) {
console.log('successCallback.');
alert('successCallback. body:'+body);
// 取得したCSVデータをパースしてメールアドレスを取得
const userEmails = body.split("\n").map(function(r) {
return r.replace(/\"/g, "").split(",")[2]; // メールアドレスはCSVの3番目のカラムにあると仮定
});
resolve(userEmails);
};
// プロキシ設定の失敗時に呼ばれるコールバック関数
const falseCallback = function(body, status, headers) {
console.log('falseCallback.');
alert('falseCallback.');
reject(new Error('Failed to fetch user data'));
};
// プロキシ経由でKintoneのCSVデータを取得
const login_name = "xxxxx"; // Kintoneログイン名
const password = "xxxxx"; // Kintoneパスワード
const base64_auth = btoa(`${login_name}:${password}`);
kintone.plugin.app.proxy(
PLUGIN_ID,
'https://xxxxx.cybozu.com/v1/csv/user.csv', // リクエストURL
'GET', // HTTPメソッド
{
'test_header':'This is test.',
//'accept-encoding':'*',
//'accept':'*/*',
'X-Cybozu-Authorization': 'xxxxxxxx' // 試験として、直接base64を入れています。実際には kintone.plugin.app.getProxyConfig により不要になる想定
}, // ヘッダー(認証情報は自動的に含まれるため不要)
{}, // リクエストボディ(GETリクエストでは特にデータは送らない)
successCallback, // 成功時のコールバック関数
falseCallback // 失敗時のコールバック関数
);
alert('PLUGIN_ID:'+PLUGIN_ID)
});
}