Apex Legends의 API w/Python

소개



이 기사에서는 Python을 사용하여 TRACKER NETWORK 의 API를 두드려 APEX 통계를 얻는 방법을 설명합니다.

참고


  • Apex Legends API가 될 것 같습니다.

  • 목차


  • TRACKER NETWORK API 설정
  • 등록
  • 응용 프로그램 만들기
  • API 키 확인

  • Pyhton에서 API를 두드리는
  • API를 두드리는 방법
  • JSON 처리
  • 코드
  • 결과
  • 여러가지 봐


  • TRACKER NETWORK API 설정



    등록



    먼저 API를 사용하려면 TRACKER NETWORK에 등록합니다.
    사용자 이름 (선택 사항)과 메드, 비밀번호를 입력하여 등록

    애플리케이션 만들기



    등록이 완료되면 다음에 API를 활용하기 위한 애플리케이션 생성

    로그인 후 톱 페이지의 Developers 탭 또는 에서 애플리케이션 작성 페이지로 이동하여 Create Application
    htps // t 등 c r. ㅇ / ゔ ぇぺぺ rs / ps

    작성 화면에서 애플리케이션의 이름, 설명, 목적을 작성하여 Create app

    API 키 확인



    작성한 애플리케이션 세부정보에서 API Key를 찾아 메모

    파이썬으로 API를 두드리는



    API 키를 사용할 수 있었으므로 다음은 Python에서 API를 두드려 보겠습니다.

    API를 두드리는 방법



    파이썬에서는 REST API를 두드리는 데 유용한 requests라는 라이브러리가 있으므로 그것을 사용합니다.
    url과 headers를 지정하여 API를 치십시오.

    이번에는 Apex 정보를 원하기 때문에 https://public-api.tracker.gg/v2/apex/standard/profile/{platform}/{user} 부분에 플랫폼 (Origin, PS, XBOX)과 Apex 사용자 이름을 넣어 Apex 통계에 액세스합니다.

    JSON 처리



    API를 두드려 돌아오는 결과는 JSON 형식이므로 Python에서 다룰 수 있도록 json 라이브러리 사용

    코드



    Apex_api.py
    import requests, json, os
    from pprint import pprint
    url = "https://public-api.tracker.gg/v2/apex/standard/profile/origin/SIN_HA_JECHT_DA"
    header = {"TRN-Api-Key":os.environ['TRN_API_KEY']}#環境変数から読み込むようにしてる
    
    res = requests.get(url, headers=header).json()
    pprint(res)
    

    결과



    결과가 너무 길기 때문에 일부 발췌
    {'data': {'availableSegments': [{'attributes': {},
                                     'metadata': {},
                                     'type': 'legend'}],
              'expiryDate': '2021-02-12T14:36:57.1605506+00:00',
              'metadata': {'activeLegend': 'legend_15',
                           'activeLegendName': 'Horizon',
                           'activeLegendStats': None,
                           'currentSeason': 2},
              'platformInfo': {'additionalParameters': None,
                               'avatarUrl': 'https://secure.download.dm.origin.com/production/avatar/prod/userAvatar/33294085/416x416.PNG',
                               'platformSlug': 'origin',
                               'platformUserHandle': 'SIN_HA_JECHT_DA',
                               'platformUserId': 'SIN_HA_JECHT_DA',
                               'platformUserIdentifier': 'SIN_HA_JECHT_DA'},
              'segments': [{'attributes': {},
                            'expiryDate': '2021-02-12T14:36:57.1605506+00:00',
                            'metadata': {'name': 'Lifetime'},
                            'stats': {'damage': {'category': None,
                                                 'displayCategory': 'Combat',
                                                 'displayName': 'Damage',
                                                 'displayType': 'Unspecified',
                                                 'displayValue': '159,116',
                                                 'metadata': {},
                                                 'percentile': 50.0,
                                                 'rank': None,
                                                 'value': 159116.0},
                                      'headshots': {'category': None,
                                                    'displayCategory': 'Combat',
                                                    'displayName': 'Headshots',
                                                    'displayType': 'Unspecified',
                                                    'displayValue': '164',
                                                    'metadata': {},
                                                    'percentile': 25.0,
                                                    'rank': None,
                                                    'value': 164.0},
                                      'kills': {'category': None,
                                                'displayCategory': 'Combat',
                                                'displayName': 'Kills',
                                                'displayType': 'Unspecified',
                                                'displayValue': '1,060',
                                                'metadata': {},
                                                'percentile': 79.0,
                                                'rank': None,
                                                'value': 1060.0},
                                      'level': {'category': None,
                                                'displayCategory': 'Combat',
                                                'displayName': 'Level',
                                                'displayType': 'Unspecified',
                                                'displayValue': '295',
                                                'metadata': {},
                                                'percentile': 84.0,
                                                'rank': None,
                                                'value': 295.0},
                                      'rankScore': {'category': None,
                                                    'displayCategory': 'Game',
                                                    'displayName': 'Rank Score',
                                                    'displayType': 'Unspecified',
                                                    'displayValue': '4,828',
                                                    'metadata': {'iconUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/ranks/platinum4.png',
                                                                 'rankName': 'Platinum '
                                                                             '4'},
                                                    'percentile': None,
                                                    'rank': None,
                                                    'value': 4828.0},
    

    유용한 데이터가있는 것은 segments이 이후에는 전설별 정보가 적혀 있습니다.

    여러가지 봐



    중첩된 JSON은 사전과 마찬가지로 각 요소에 액세스합니다.segments는 목록에 있으며 [0]에는 전체 계정 킬 수와 같은 정보가 있습니다.
    이후에는 각 레전드마다의 정보가 있다(레전드의 순서는 부동)

    res['data']['segments'][0]['stats']['rankScore']



    이것으로 순위 정보를 얻을 수 있습니다.value 가 랭크 포인트로 metadata 에는 랭크의 위치가 써 있다
    나는 백금 4입니다 (영원히)
    {'category': None,
     'displayCategory': 'Game',
     'displayName': 'Rank Score',
     'displayType': 'Unspecified',
     'displayValue': '4,828',
     'metadata': {'iconUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/ranks/platinum4.png',
                  'rankName': 'Platinum 4'},
     'percentile': None,
     'rank': None,
     'value': 4828.0}
    

    res['data']['segments'][6]



    이것은 내가 가장 많이 사용하는 Horizon 정보입니다.
    {'attributes': {'id': 'legend_15'},
     'expiryDate': '2021-02-12T14:36:57.1605506+00:00',
     'metadata': {'bgImageUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/legends/horizon-concept-bg-small.jpg',
                  'imageUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/legends/horizon-tile.png',
                  'isActive': True,
                  'name': 'Horizon',
                  'tallImageUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/legends/horizon-tall.png'},
     'stats': {'kills': {'category': None,
                         'displayCategory': 'Combat',
                         'displayName': 'Kills',
                         'displayType': 'Unspecified',
                         'displayValue': '504',
                         'metadata': {},
                         'percentile': 94.0,
                         'rank': None,
                         'value': 504.0},
               'season7Kills': {'category': None,
                                'displayCategory': 'Game',
                                'displayName': 'Season 7 Kills',
                                'displayType': 'Unspecified',
                                'displayValue': '402',
                                'metadata': {},
                                'percentile': 86.0,
                                'rank': None,
                                'value': 402.0},
               'season7Wins': {'category': None,
                               'displayCategory': 'Game',
                               'displayName': 'Season 7 Wins',
                               'displayType': 'Unspecified',
                               'displayValue': '17',
                               'metadata': {},
                               'percentile': 83.0,
                               'rank': None,
                               'value': 17.0},
               'ultimateEnemyDamage': {'category': None,
                                       'displayCategory': 'Game',
                                       'displayName': 'Ultimate Enemy Damage',
                                       'displayType': 'Unspecified',
                                       'displayValue': '3,707',
                                       'metadata': {},
                                       'percentile': 71.0,
                                       'rank': None,
                                       'value': 3707.0}},
     'type': 'legend'}
    

    500킬 정도

    좋은 웹페이지 즐겨찾기