킨톤으로 성별 판정을 해보자.

소개


  • ES2015 이상의 구문을 포함하기 때문에 Chrome에서만 작동을 확인합니다.
  • 샘플 코드의 실제 사용은 자기 책임으로 부탁드립니다 🙇‍♂️

  • 만드는 것


  • 이름에 따라 성별을 자동으로 결정합니다



  • 양식 구성






    필드 이름(필드 코드)
    종류


    성(성)
    문자열(1행)

    이름(이름)
    문자열(1행)

    LastName(LastName)
    문자열(1행)

    FirstName(FirstName)
    문자열(1행)

    성별(성별)
    드롭다운


    API



    이번은 Genderize 라는 API를 사용해 성별 판정을 실시합니다.
    사용법은 간단하고, https://api.genderize.io/?name=●● 라고 두드리면 추정 성별, 퍼센티지가 돌아옵니다.
    단, 일본어에는 대응하고 있지 않으므로 알파벳으로 전달해 줄 필요가 있습니다.
    또한 국가 지정도 가능하므로 이번에는 country_id=JP라는 파라미터를 부여합니다.
    이 파라미터가 상당히 중요하고, mika(미카)라고 하는 일본명은 대체로 여성에게 붙일 수 있습니다만,
    영어권이라면 michael의 약칭이거나 하는 관계로, 파라미터 없음이면 남성 판정, 파라미터가 있으면 여성 판정이 됩니다.
    따라서 외국인도 포함하는 경우는 국가명 등의 필드를 준비해 파라미터를 변화시키는 것을 요건에 추가하는 것도 있을 것입니다.

    맞춤형



    이번에는 레코드 추가 화면을 저장한 타이밍에 성별 판정을 실시해, 드롭다운에 성별을 반영합니다.

    gender.js
    (() => {
      'use strict';
      kintone.events.on('app.record.create.submit', event => {
        const record = event.record;
        const firstName = record.FirstName.value;
        const apiUrl = `https://api.genderize.io/?name=${firstName}&country_id=JP`;
        return kintone.proxy(apiUrl, 'GET', {}, {}).then((args) => {
          const res = JSON.parse(args[0]);
          const gender = res.gender;
          record.性別.value = gender === 'male' ? '' : '';
          return event;
        });
      });
    })();
    

    유의점


  • Genderize API는 하루 1000건까지 무료 범위 내에 있습니다.
  • 실제의 동작에서는, Possibility에 근거해, 역치를 설정할 필요가 있을 것 같습니다.
  • 이 코드에는 오류 처리가 포함되어 있지 않습니다.
  • 좋은 웹페이지 즐겨찾기