iCloudの位置情報を取得するpythonライブラリ「pyicloud」による位置情報の取得について説明します。
今回はiCloudの情報へアクセスできるまでの手順を紹介していきたいと思います。
目的:iphoneアプリ「探す」で友達の中で位置情報を共有しているユーザーの位置情報を取得する。
やること:pyicloudを使い、友達の中で位置情報を共有しているユーザーの緯度・経度データを取得し、GPXファイルに記録する。
pyicloudとは:ユーザーネームとパスワードを入力し、利用しているiCloudのwebサービスへのアクセスを可能にするpythonのモジュール
注意:GitHubには
-piclepeteによるpyicloud
(https://github.com/picklepete/pyicloud)
-zzeleznickによるpyicloud
(https://github.com/zzeleznick/pyicloud)
があるが、今回の「友達の中で位置情報を共有しているユーザーの緯度・経度データ」取得には「zzeleznickによるpyicloud」をインポートすること。
# ファイル名 main.py
# pyicloudをインポート
from pyicloud import PyiCloudService
#"email"と'password'に自分のicloudのメールアドレスとパスワードを入力
email = "email"
password = 'password'
#データを取得、表示
def run():
api = PyiCloudService(email, password)
if api.requires_2sa:
import click
print("Two-step 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")
code = click.prompt('Please enter validation code')
if not api.validate_verification_code(device, code):
print("Failed to verify verification code")
def __name__ == "__main__":
run()
このプログラムを実行するとpyicloudでicloud上にある「探す」アプリで位置情報の共有をしている人のデータが取得できます。
上記のコードを実行してみると、
上記のような画面が、PC、iPhone両端末に表示されます。
どちらの端末でも良いので「許可する」を押す。
すると両端末に下記の画面が表示されます。
この番号は使いません
「完了」をクリック
1分ほど待つとiphoneに下記のようなメッセージが送られてきます。
この番号を入力↓
すると、作成したコードがiphoneアプリ「探す」で友達の中で位置情報を共有しているユーザーの位置情報を取得するための権限が得られました。