2016-06-24 8 views
6

ブラウザにOauth2フローをトリガするRパッケージがあります(httr経由)。ユーザーはIT部門が特定のシステムデフォルトブラウザ(この場合はIE + Windows)を必要とするという奇妙な状況にあります。しかし、ユーザーは別のブラウザでOAuthを実行する必要があります。デフォルト以外のブラウザの使用方法は?

私はR_BROWSERという環境変数について認識しており、一時的に必要なブラウザに設定したいと考えています。 (そして、OAuthの流れで尊敬されることを願って...)

私はMacでこれを手伝っています。私のデフォルトブラウザはSafariです。私はどのように行う

system("/usr/bin/open -a '/Applications/Google Chrome.app' 'http://slate.com'") 

しかし:私のいつもの状況WRT R_BROWSERは、私がsystem()コールで、Rから、シェルから、例えば、クロムの使用を強制たりする方法を知っているこの

Sys.getenv("R_BROWSER") 
#> [1] "/usr/bin/open" 

ですその知識をR_BROWSERの適切な設定に転送しますか?これは動作しません:

Sys.setenv("R_BROWSER" = "/usr/bin/open -a '/Applications/Google Chrome.app'") 

その後、browseURL()とすると、通常のSafariのデフォルトが使用されます。私はその答えがOSによって異なると思う。 Mac OSの場合は、openの使用を避け、ブラウザを直接指定するのが望ましいと思われます。

答えて

4

まず、あなたはまた、以前の両方browserオプションの値とR_BROWSERを保存する必要があります@ Hack-R投稿日:R_BROWSER

Sys.setenv("R_BROWSER" = "/usr/bin/open -a '/Applications/Safari.app'") 
options(browser = as.vector(Sys.getenv("R_BROWSER"))) 
browseURL("http://www.google.com") # opens in Safari, though my default is Chrome 

(あなたはまた、単に直接options(browser = "/usr/bin/open -a '/Applications/Safari.app'")browseURL作品を設定することができます。)

最後に、はい

Sys.setenv("R_BROWSER" = old_R_BROWSER) 
options(browser = old_browser) 
2

Rは設定時に指定されたブラウザを探します。

オプションのデフォルト設定(「ブラウザ」)は

options(browser = as.vector(Sys.getenv("R_BROWSER"))) 

なるように設定されており、設定時に見つかったブラウザがファイルなど/ Renvironに 変数R_BROWSERに設定されています。そのファイルを編集してください。これは、共有システムであれば

最後に、あなたは?スタートアップを参照してください

R_BROWSER=${R_BROWSER-'FireFox'} 

を提出あなたの 〜/ .Renvironに次のように持つことができます。 (Rprofileファイルを使用することもできますが、通常は に1つの.Renvironファイルしかありません)

これはthisに基づいています。

old_R_BROWSER <- Sys.getenv("R_BROWSER") 
old_browser <- options()$browser 

はその後、コマンドを再実行して必要な動作を実現することができます:あなたは、セッションの以前の状態を復元できるように

+1

システム状態を復元私はあなたが私が投稿する前にリンクのものをお読みください。この情報を使用して、RをMacで使用するようにすることができましたか? – jennybryan

関連する問題