使用“op”命令行工具查询1password帐户的python api
pyonepassword的Python项目详细描述
pyonepassword
说明
使用op
命令登录并查询1密码帐户的python api。
要求
- python=3.7
- 1密码命令行工具
- 互联网连接到1password.com
op
命令查询您的联机帐户,而不是本地保险库
示例用法
初始登录
importgetpassfrompyonepassword.pyonepasswordimport(OP,OPSigninException)defdo_initial_signin():my_signin_address="my-1p-account.1password.com"my_email_address="my-1p-email@email.com"my_secret_key=getpass.getpass(prompt="1Password secret key:\n")my_password=getpass.getpass(prompt="1Password master password:\n")try:op=OP(signin_address=my_signin_address,email_address=my_email_address,secret_key=my_secret_key,password=my_password)exceptOPSigninExceptionasope:print("1Password initial signin failed: {}".format(ope))print(ope.err_output)exit(1)print("1Password is signed in and ready for lookups")returnopif__name__=="__main__":op=do_initial_signin()# op is ready to use and call lookup() onprint("Signed in.")
$ python3 ./example.py 1Password secret key:1Password master password:Performing initial 1Password sign-in to my-1p-account.1password.com as my-1p-email@email.comSigned in.
后续登录和查找
importgetpassfrompyonepasswordimport(OP,OPSigninException)defdo_signin():# If you've already signed in at least once, you don't need to provide all# account details on future sign-ins. Just master passwordmy_password=getpass.getpass(prompt="1Password master password:\n")try:op=OP(password=my_password)exceptOPSigninExceptionasope:print("1Password initial signin failed: {}".format(ope))print(ope.err_output)exit(1)returnopif__name__=="__main__":op=do_signin()print("Signed in.")print("Looking up \"Example Login\"...")print(op.lookup("Example Login"))print("")print("\"Example Login\" can also be looked up by its uuid")print("")print("Looking up uuid \"ykhsbhhv2vf6hn2u4qwblfrmg4\"...")print(op.lookup("ykhsbhhv2vf6hn2u4qwblfrmg4"))
$ python3 ./examples/example-signin-lookup.py 1Password master password:Doing normal (non-initial) 1Password sign-inSigned in.Looking up "Example Login"...doth-parrot-hid-tussock-veldt"Example Login" can also be looked up by its uuidLooking up uuid "ykhsbhhv2vf6hn2u4qwblfrmg4"...doth-parrot-hid-tussock-veldt
注释
- 这个已经过了轻微的测试,而且只在我的mac上。我不知道它在其他系统上是否有效。
- 这已经过
op
版本0.5.6的测试。 - 您需要
op
1password命令行工具。在带有自制程序的Mac上,您可以执行brew install 1password-cli
。
待办事项
- 检测是否安装了
op
,并提供帮助 - 获取保险库项的完整或部分json的api,而不仅仅是特定字段的值
- 也许有一天1password.com会有一个api,这个模块不必使用
op