お世話になっております。
背景・実現したいこと
自分の IPアドレスを取得して、フィールド:IPアドレス:文字列(一行)に保存したいです。
IPアドレスの取得について – cybozu developer network
こちらを参考にいたしました。
問題点として2点あります。
1.自分のIPアドレスではなく、サイボウズ様のIPアドレスを取得してしまう。
2.フィールドに保存されない。
エラー情報 (開発者ツールのコンソール)
エラーは特に表示されませんでした。
利用したソースコード
(() => {
“use strict”;
kintone.events.on(‘app.record.detail.show’, async (event) => {
const response = await kintone.proxy('https://ipinfo.io/json’,‘GET’,{},{})
const ipAddress = JSON.parse(response[0]).ip;
window.alert(ipAddress);
event.record.IPアドレス.value = ipAddress;
});
})();
保存する位置等ためしましたが、どうしても
うまくいきませんでした。
どうぞよろしくお願いいたします。
こちらのサイトを参考に試してみました。
https://www.sejuku.net/blog/104627
もっとうまい方法がありそうですが、、、
一覧画面表示イベントでIPアドレスを取得するためのscriptを用意し、画面が表示されたタイミングでsessionStorageにIPアドレスが格納されます。
登録画面の表示イベントでsessionStorageに格納したIPアドレスを取り出します。
ロジックには書いてませんが、取り出したIPはフィールドにセットするなりして利用します。
もっと良い方法をご存じの方がおりましたら教えてください。
(function() {
"use strict";
kintone.events.on('app.record.index.show', async(event) => {
const script = document.createElement('script');
script.src = 'https://ipinfo.io?callback=callback';
document.body.appendChild(script);
document.body.removeChild(script);
return event;
});
kintone.events.on('app.record.create.show', async(event) => {
console.log(sessionStorage.getItem('IP'));
return event;
});
})();
function callback(data) {
console.log(data.ip);
sessionStorage.setItem('IP', data.ip);
}
system
(system)
クローズされました:
4
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。