python3 获取/备份 iPhone icloud云端 中相关数据

PyiCloud是一个允许pythonistas与iCloud webservices交互的模块。它由奇妙的请求 HTTP库提供支持。

PyiCloud的核心是使用您的用户名和密码连接到iCloud,然后针对其API执行日历和iPhone查询。

pip install pythonistas
pip install bitstring
pip install keyring

photos.py 中需注意 python2 和python3 urllib 的区别

# import urllib
from urllib import parse
# 'url': urllib.unquote(url),
'url': parse.unquote(url),

认证

 

>>> from pyicloud import PyiCloudService
>>> api = PyiCloudService('jappleseed@apple.com', 'password')

 

如果用户名/密码组合无效,则抛出PyiCloudFailedLoginException异常。

 

您还可以使用命令行工具将密码存储在系统密钥环中:

>>> icloud --username=jappleseed@apple.com
ICloud Password for jappleseed@apple.com:
Save password in keyring? (y/N)

如果要删除存储在系统密钥环中的密码,可以使用--delete-from-keyring命令行选项清除存储的密码:

>>> api = PyiCloudService('jappleseed@apple.com')

双重身份认证

如果想关闭iphone双重认证 详见关闭iphone双重身份认证方法

if api.requires_2fa:
    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)

 

往来

 

您可以通过contacts属性访问您的iCloud联系人/地址簿:

for c in api.contacts.all():
    print(c)
    print(c.get('firstName'), c.get('phones'))
        

设备

您可以使用devices属性列出与您的帐户关联的设备:

>>> api.devices
{
u'i9vbKRGIcLYqJnXMd1b257kUWnoyEBcEh6yM + IfmiMLh7BmOpALS + w =​​=':<AppleDevice(iPhone 4S:Johnny Appleseed的iPhone)>,
u'reGYDh9XwqNWTGIhNBuEwP1ds0F / Lg5t / fxNbI4V939hhXawByErk + HYVNSUzmWV':<AppleDevice(MacBook Air 11“:Johnny Appleseed的MacBook Air)>
}

 

并且您可以通过索引或ID来访问各个设备:

 

>>> api.devices[0]
<AppleDevice(iPhone 4S: Johnny Appleseed's iPhone)>
>>> api.devices['i9vbKRGIcLYqJnXMd1b257kUWnoyEBcEh6yM+IfmiMLh7BmOpALS+w==']
<AppleDevice(iPhone 4S: Johnny Appleseed's iPhone)>

等等。。。 如果想了解更多 请 详见 pyicloud 0.9.1 开发文档

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值