首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过rb-appscript编写密钥链?

如何通过rb-appscript编写密钥链?
EN

Stack Overflow用户
提问于 2011-04-22 18:25:13
回答 2查看 421关注 0票数 0

我跟着医生写到:

代码语言:javascript
复制
require 'rubygems'
require 'appscript'

loginKeychain = Appscript::app('Keychain Scripting').keychains['login.keychain']
userName = loginKeychain.keys[its.name.eq(name)].password.get

更新:如果我通过终端运行脚本,它第一次成功,然后返回下面的错误,直到我退出并重新启动终端;并重复.

错误间歇性地返回:

代码语言:javascript
复制
/Library/Ruby/Gems/1.8/gems/rb-appscript-0.5.3/lib/appscript.rb:539:in `_send_command': CommandError (Appscript::CommandError)
        OSERROR: -600
        MESSAGE: Application isn't running.
        COMMAND: app("/System/Library/ScriptingAdditions/Keychain Scripting.app").keychains["login.keychain"].keys[its.name.eq("a name")].password.get()

更新2:由于神秘的错误,而且密钥链脚本看起来很麻烦,所以我决定使用MacRuby。我找到了MacRuby密钥链包装器库,它直接调用钥匙链服务,而不是通过脚本编写:

代码语言:javascript
复制
require 'keychain-wrapper/keychain'
MRKeychain::GenericItem.item_for_service(service_name).password
  • 简单
  • 更有效率
  • 完美无缺

好了。

EN

回答 2

Stack Overflow用户

发布于 2011-04-22 21:54:28

我没有使用Ruby,但是我使用了Python,而且我没有遇到任何麻烦。我会尝试做常规的Applescript,看看它是否可以访问密钥链脚本。如果没有,那么尝试重新启动您的Mac。但这听起来更像是你电脑上的问题,而不是Appscript。

票数 0
EN

Stack Overflow用户

发布于 2011-04-27 11:07:15

我也得到了同样的错误,但是仅仅是那些需要身份验证的东西:

代码语言:javascript
复制
kc = app("Keychain Scripting").keychains["login.keychain"]
p kc.keys[its.name.eq("loginwindow")].name.get
# ["loginwindow"]
p kc.keys[its.name.eq("loginwindow")].password.get
# ... Application isn't running ...

tell app "Keychain Scripting" to password of keys of keychain "login.keychain" where name is "loginwindow"工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5758630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档