3

https://github.com/karthikram/rDroprDropから入手できるパッケージを使用しており、少し調整した後 (すべての機能が常に期待どおりに機能しないため)、最終的には希望どおりに動作しますが、トークンは時間の経過とともに期限切れになると思うので、毎回トークンを取得したら、アプリの使用を許可するために承認検証が必要です...(そうでない場合とトークンにハードコーディングできます。それも良い解決策になるので教えてください...)

基本的に、トークンリクエストの後に許可ボタンをクリックする必要がないように、Rのコマンドラインからドロップボックスフォルダーからcsvファイルを1行のコードでダウンロードするほぼシームレスな方法が必要でした。

これは可能ですか?

これは、ドロップボックスの csv ダウンロードをまとめるために使用したコードです。

db.csv.download <- function(dropbox.path, ...){

cKey <- getOption('DropboxKey')
cSecret <- getOption('DropboxSecret')
reqURL <- "https://api.dropbox.com/1/oauth/request_token"
authURL <- "https://www.dropbox.com/1/oauth/authorize"
accessURL <- "https://api.dropbox.com/1/oauth/access_token/"

require(devtools)
install_github("ROAuth", "ropensci")
install_github("rDrop", "karthikram")
require(rDrop)
dropbox_oa <- oauth(cKey, cSecret, reqURL, authURL, accessURL, obj = new("DropboxCredentials"))
cred <- handshake(dropbox_oa, post = TRUE)
raw.data <- dropbox_get(cred,dropbox.path)
data <- read.csv(textConnection(raw.data), ...)
data
}

ああ、明らかでない場合は、ドロップボックスのキーとシークレットを .Rprofile ファイルに入れました。これは、getOption 部分が参照しているものです。

提供されたヘルプに事前に感謝します。(おまけとして...インストール時にもすべての読み込みメッセージを取り除く方法を誰かが知っていれば、それは素晴らしいことです...)

4

1 に答える 1

1
library(rDrop) 
# my keys are in my .rprofile, otherwise specifiy inline
db_token <- dropbox_auth()
# Hit ok to authorize once through the browser and hit enter back at the R prompt.
save(db_token, file="my_dropbox_token.rdata")

Dropbox token are non-expiring and can be revoked anytime from the Dropbox web panel.

For future use:

library(rDrop)
load('~/Desktop/my_dropbox_token.rdata')
df <- data.frame(x=1:10, y=rnorm(10))
> df
    x          y
1   1 -0.6135835
2   2  0.3624928
3   3  0.5138807
4   4 -0.2824156
5   5  0.9230591
6   6  0.6759700
7   7 -1.9744624
8   8 -1.2061920
9   9  0.9481213
10 10 -0.5997218
dropbox_save(db_token, list(df), file="foo", ext=".rda")
rm(df)
df2 <- db.read.csv(db_token, file='foo.rda')
> df2
    x          y
1   1 -0.6135835
2   2  0.3624928
3   3  0.5138807
4   4 -0.2824156
5   5  0.9230591
6   6  0.6759700
7   7 -1.9744624
8   8 -1.2061920
9   9  0.9481213
10 10 -0.5997218

If you have additional problems, please file an issue.

于 2012-09-13T23:45:27.003 に答える