2017-03-10 4 views
0

このanswerには、1Password miniを起動し、アプリスクリプトからパスワードを選択する方法が記載されています。フォローアップとして、どのようにしてパスワードの内容をクリップボードにコピーできますか?コマンドはAppleScriptで何をすべきですか?1Passwordからパスワードの内容をAppleScriptでコピーするにはどうすればいいですか?

+0

@AgileBits_Jasperリンクされた質問に回答したので、CMD + Cを1Passwordに送る方法も知っていますか? –

答えて

1

1Password MiniにはAPIがないと思われますので、私たちはその方法を突き詰める必要があります。

ここに1つのアプローチです:

set theSearchTerm to "facebook" 

-- Search for the password in 1Password 
do shell script "open x-onepassword-helper://search/" & theSearchTerm 

delay 0.5 

-- Copy to clipboard 
tell application "System Events" to keystroke "c" using {shift down, command down} 

delay 0.5 

-- Ensure password is copied as pasteable text 
do shell script "pbpaste | pbcopy" 

-- Use the password 
set thePassword to (the clipboard as text) 

知っておくべき問題のカップルがあります:

  1. あなたはプレーンテキストとしてクリップボードにパスワードをコピーし、"pbpaste | pbcopy"ラインに起因するものですテキストは90秒後に自動削除されません。 (私は私のスクリプトは、このステップなしで動作させることができなかった)
  2. 検索語は何も結果を返さない場合、あなたはここで

AppleScriptのエラーが発生しますと、1Passwordのは、いずれも返さない取り扱う異なるアプローチでありますの検索結果。 1Passwordの検索結果を解析する方法はないようです(誰かがこれを行う方法を知っていれば嬉しいです)。私は第2のkludgeを実装しました。クリップボードが修正されているかどうか確認してください。検索結果がない場合、クリップボードの内容は変更されません。検索結果がある場合、同じパスワードを繰り返し使用しないと仮定すると、クリップボードの内容は異なります。

set theSearchTerm to "foo" 
set thePassword to "" 

-- Search for the password in 1Password 
open location "x-onepassword-helper://search/" & theSearchTerm 

delay 0.5 

tell application "System Events" to tell process "1Password mini" 

    set theClipboardTextPre to (the clipboard as text) 

    -- Copy to clipboard 
    keystroke "c" using {shift down, command down} 
    delay 0.5 

    -- Ensure password is copied as pasteable text 
    do shell script "pbpaste | pbcopy" 

    -- Check to see if clipboard contents have changed 
    -- If no change, it implies 1Password didn't return a search result 
    set theClipboardTextPost to (the clipboard as text) 

    if theClipboardTextPre is not equal to theClipboardTextPost then 
     set thePassword to theClipboardTextPost 
    end if 

end tell 

log thePassword 

ここでの欠点は、あなたが同じパスワードを使用して2つのサイトを持っている場合、スクリプトは1Passwordのは、検索結果を返しませんでしたと思うだろうということです。

+0

ありがとうございます。 –

関連する問題