Power Automate(구 Microsoft Flow)를 사용하여 fitbit의 WebAPI에서 체중 데이터 가져오기

6704 단어 MicrosoftFlowfitbit
2019/12/13 서비스 이름 변경과 함께 제목 및 본문 수정

개시하다

  • Qita 최초 출시
  • 다양한 Qita 기고문을 보면서 제가 배운 내용을 정리하고 기록하려고 기고했습니다.
    또한 이 기사에 언급된 Power Automate를 비롯한 다른 서비스도 완전히 문외한이다.
    "그렇게 안 해도 되는데..."라는 내용이 있다면 사양하지 마세요.
  • 글을 쓴 계기
  • 2019/8/11(일) 열린 코네파스 학습회'Microsoft Graph 학습회 in 후쿠오카'에서 배운 REST API의 앱에서도 핏빗의 웹API는 "API를 두드리지 말자"는 같은 생각을 했다.이를 통해 자신들의 활동 데이터를 SharePoint 온라인에 저장하려 한다는 상상을 불러일으킨 것이 계기가 됐다.
  • 이번에 할 일
  • 이번에는 Power Automate를 사용하여 핏비트의 웹API를 이용해 데이터를 얻을 때까지다.
    초보자도 시도할 수 있도록 알기 쉬운 기사를 열심히 만들고 싶어요.

    컨디션


    무선 단말기

  • 이것은 자신의 활동 데이터를 측정하는 데 필요한 항목이다.

  • fitbit 계정 등록

  • fitbit를 이미 사용했다면 계수
  • 를 등록했을 수 있습니다
  • 터미널이 없어도 계좌 등록과 체중 기록이 가능...가능?
  • Power Automate 라이센스(Power Automate per plan 등)

  • HTTP 요청은 고급 연결기이기 때문에 오피스 365의 무료 범위 내의 허가증은 연결기를 사용할 수 없습니다.
  • 라이센스가 없는 사람은 PowerApps Community Plan에서도 가능(9월 1일 현재)
  • PowerApps Community Plan

    차리다


    OAuth 인증 정보 얻기

  • fitbit에 대한 인증 정보 취득에 대해 다음과 같은 글을 참고하였다.
  • "5분이면 나만의 Fitbit Clock Face를 만들 수 있어요".
    https://qiita.com/makopo/items/32f41128c2e055cec68f
  • 확보한 액세스 토큰
  • 유지

    프로세스 작성


    전체 이미지


    전체적인 인상은 다음과 같다.이번에는 아주 단순하다.

    1. 촉발하는 제작


    특별히 지정한 터치 생성이 없습니다.먼저 이동하려면 다음과 같이 수동 버튼을 터치할 수 있다.

    2. HTTP 요청에 fitbit의 WebAPI 사용


    ① 다음 동작을 선택한다.

    ② 아래 내용에 따라 제작을 요구한다.
  • 방법: GET
  • URI : https://api.fitbit.com/1/user/-/body/log/weight/date/yyyy-mm-dd.json
  • 머리글 (KEY)Authorization (VALUE)Bearer 取得したアクセストークン
  • ※ VALUE 값은 준비 항목의 OAuth 인증 정보 획득에서 획득한 액세스 토큰을 사용합니다."Bearer"뒤에 반쪽 공간을 남겨 주세요.
    ※ 이름은'핏비트 get weight'이며, 동작 제작 시 초기값은'HTTP'입니다.초기 값을 유지하면 됩니다.
    ※ 자세한 옵션은 필요 없음
    ※ 다른 API를 시도하려면 핏비트WebAPI 참조를 참고하세요.

    3. JSON의 해석


    ① 다음 동작을 선택한다.

    ② 다음을 통해 JSON을 해석한다.
  • 내용: 本文> 이전에 만든'HTTP'동작에 이어'본문'을 지정
  • Skima: スキーマ&fitbit WebAPI의 응답이 JSON 형식으로 되돌아오기 때문에 Skima를 지정합니다.
  • 내용은 본문을 지정하여 HTTP 요청에 대한 응답을 입력합니다.
    얻은 JSON 데이터는 패턴을 제대로 지정하지 않으면 후속 동작에서 사용할 수 없습니다.
    몸무게의 WebAPI에 대한 설명은 몸무게(WebAPI) 참조을 참조하십시오.
    이 기사에서 체중과 관련된 API라면 다음 모드를 직접 사용할 수 있다.
    {
        "type": "object",
        "properties": {
            "weight": {
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                        "bmi": {
                            "type": "number"
                        },
                        "date": {
                            "type": "string"
                        },
                        "fat": {
                            "type": "number"
                        },
                        "logId": {
                            "type": "integer"
                        },
                        "source": {
                            "type": "string"
                        },
                        "time": {
                            "type": "string"
                        },
                        "weight": {
                            "type": "number"
                        }
                    },
                    "required": [
                        "bmi",
                        "date",
                        "fat",
                        "logId",
                        "source",
                        "time",
                        "weight"
                    ]
                }
            }
        }
    }
    
    다른 WebAPI에서 모드를 만들려면 [샘플 페이로드 생성 모드 사용]을 선택하고 샘플 데이터를 사용하여 모드를 생성할 수 있습니다.
  • 샘플 데이터를 얻으려면
    POSTMAN에서fitbit의WebAPI를 시도해 봤는데 결과를 '샘플을 사용하는 유효 하중 생성 모드' 에 붙여서 만들었습니다.
  • 샘플의 유효한 하중을 사용하여 모드를 생성하는 예
  • 실행 결과


    순조롭게 진행되면 다음과 같은 결과가 있을 것이다.
  • JSON의 해석이 성공했기 때문에 후속 동작에서'동적 내용'으로 처리할 수 있다.
  • SharePoint 온라인의 사용자 정의 목록에 등록된 예

  • 보태다


    획득한 방문 영패는 유효기간이 있다.플로팅에 저장된 액세스 토큰이 만료되면 fitbit의 WebAPI는 더 이상 요청을 받지 않습니다.
    (기본적으로 접속 영패는 7일에 만료됩니다.)
    매일 체중과 운동 기록을 남기고 싶다면 정기적으로 실시하는 것으로 촉발하고 싶지만 매번 방문 영패를 받을 수는 없다.
    핏비트의 웹API는 방문 영패를 유지하기 위해 리셋 영패를 계속 사용할 수 있기 때문에 앞으로 그 방법을 글에 쓰려고 한다.

    좋은 웹페이지 즐겨찾기