[파이thhon] 집에서 못 찾는 아이폰 소리를 내고 싶어요.
개시하다
혹시 집에서 아이폰의 위치를 모르시나요?저 있어요.
나는 내 집에서 구글 홈을 사용하기 때문에 이들에게 "야, 구글, 아이폰을 찾아라"라고 말하고, 어디로 가는 아이폰의 소리를 들을 수 있다면 쉽게 찾을 수 있다.
이번에는 파이톤pyicloud 프로그램 라이브러리를 사용해 먼저 지령선상에서 아이폰의 소리를 실현한다.
이 신청을 통해서 알 수 있는 것들.
이 신청으로 해결할 수 없는 일.
컨디션
필요한 라이브러리 설치
pip3 install pyicloud
인증까지
from pyicloud import PyiCloudService
import sys
APPLE_ID = 'your_apple_id'
PASSWORD = 'your_apple_id_password'
COOKIE_DIR = './cookie'
api = PyiCloudService(apple_id=APPLE_ID, password=PASSWORD, cookie_directory=COOKIE_DIR)
if api.requires_2fa:
print("Two-factor authentication required.")
code = input("Enter the code you received of one of your approved devices: ")
result = api.validate_2fa_code(code)
print("Code validation result: {}".format(result))
if not result:
print("Failed to verify security code")
sys.exit(1)
if not api.is_trusted_session:
print("Session is not trusted. Requesting trust...")
result = api.trust_session()
print("Session trust result {}".format(result))
if not result:
print("Failed to request trust. You will likely be prompted for the code again in the coming weeks")
elif 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(" {}: {}".format(i, device.get("deviceName", "SMS to %s".format(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)
여기서 한 번 실행하면 인증용 코드를 입력하라는 프롬프트가 표시되므로 자체 아이폰 등에 표시된 6비트 코드를 입력하면 세션 정보./cookie
디렉토리에 저장된다.이 저장된 세션 정보는 다음 실행에 불러올 것이기 때문에 인증할 필요가 없습니다.※ 2 단계별 인증이 없는 계정
elif api.requires_2sa:
이후 일부 코드가 확인되지 않아서(현재 팩스 인증 2개 추천)iCloud에 등록된 장치 목록 가져오기
api.devices
=> {'aAbBcCdDeEfFgGhHiIjJkK': <AppleDevice(iPad Pro: iPad Pro 12.9)>, 'lLmMnNoOpPqQrRsStTuUvV': <AppleDevice(iPhone 8: My iPhone6s)>}
※ 홈 공유 사용 시 자신이 공유한 장비도 반환검색된 목록에서 장치 지정
api.devices[1]
=> iPhone 8: My iPhone8
api.devices['lLmMnNoOpPqQrRsStTuUvV']
=> iPhone 8: My iPhone8
iCloud에 등록된 첫 번째 장치 가져오기
api.iphone
=> iPad Pro: iPad Pro 12.9
장치 위치 가져오기
api.iphone.location()
=> {'isOld': False, 'isInaccurate': False, 'altitude': 0.0, 'positionType': 'Cell', 'latitude': 35.6809591, 'floorLevel': 0, 'horizontalAccuracy': 65.0, 'locationType': '', 'timeStamp': 1612427791108, 'locationFinished': False, 'verticalAccuracy': 0.0, 'longitude': 139.7673068}
api.iphone.location()['latitude']
=> 35.6809591
api.iphone.location()['longitude']
=> 139.7673068
장치에서 사운드 재생(상당한 사운드 발생에 주의)
api.iphone.play_sound()
※ 알림 소리가 꺼져도 소리가 납니다!총결산
파이썬에서 iCloud 정보에 액세스했습니다.pycloud의 v0.10.1 미만이면 팩스 인증 세션 2개4시간밖에 안 됐어요.인 것 같지만 2021/2/1에 발표된 v0.10.1부터 회화가 장기간 유지되기 때문에 활용하는 자리가 많아진다.까먹었을 때 세션이 거의 끝나가니까 끊었을 때 슬랙에게 미리 알리는 등
가정에서 공유하는 기기에 대한 정보도 얻을 수 있기 때문에 아이가 아이폰을 가지고 있다면 활용해 보려고 한다.
속편이 언제인지는 모르겠지만 구글 홈에서 아이폰 소리를 내고 싶다.
Reference
이 문제에 관하여([파이thhon] 집에서 못 찾는 아이폰 소리를 내고 싶어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/zilch/articles/f30e512c5d0b60텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)