【Python】icloud に登録しているデバイスの位置情報を取得する

Pythonを使って、icloud に登録しているデバイスの位置情報を取得してみます。

前もって、PyiCloudService のモジュールをインストールしておきます。

#!/usr/bin/env python
#-*- coding:utf-8 -*-
from pyicloud import PyiCloudService
import sys

#以下は接続するicloudのアカウントとパスワードを記載します。
api = PyiCloudService('【ID】', '【パスワード】')
search_device = "XXXXXXXXXXXXXXXXXXXXXXXXXXX=" #デバイスID

#ここから2段認証を実施する。
if api.requires_2fa:
    import click
    print("Two-factor authentication required. Your trusted devices are:")

    devices = api.trusted_devices
    for i, device in enumerate(devices):
        print("  %s: %s" % (i, device.get('deviceName',"SMS to %s" % device.get('phoneNumber'))))

    device = click.prompt('Which device would you like to use?', default=0)
    device = devices[device]
    if not api.send_verification_code(device):
        print("Failed to send verification code")
        sys.exit(1)

    code = click.prompt('Please enter validation code')
    if not api.validate_verification_code(device, code):
        print("Failed to verify verification code")
        sys.exit(1)

if __name__ == '__main__':

    for device in api.devices.keys():
        print(api.devices[device])
        print(device)

        if device == search_device:
            print(api.devices[device].location()['latitude'])
            print(api.devices[device].location()['longitude'])

↓このような感じで、経度・緯度を取得できます。

35.69674

139.81495