3

RとJeffGentryによるROAuthパッケージを使用してfitbitからデータをプルしようとすると、認証が機能しないようです。次のようにコーディングします。

apiURL = 'api.fitbit.com/'

credentials = OAuthFactory$new(consumerKey=key, 
                           consumerSecret=secret, 
                           requestURL=tokenURL,
                           accessURL=accessTokenURL,
                           authURL=authorizeURL
                           )

次に、ハンドシェイクを実行します。

> credentials$handshake()
To enable the connection, please direct your web browser to: 
http://www.fitbit.com/oauth/authorize?oauth_token=036afa88a832bfffc72af485e38c1572
When complete, record the PIN given to you and provide it here: 

承認を完了し、oauth_verifierトークンを貼り付けて、適切に見える資格情報のセットを作成します。

最後に、私が求めているプロファイルデータを取得しようとします。

rawToChar(credentials$OAuthRequest(paste(apiURL,"1/user/userID/profile.json", sep="", collapse=''), "GET"))

そして、私はこれに応えてこれを受け取ります:

[1] "{\"errors\":[{\"errorType\":\"oauth\",\"fieldName\":\"n/a\",\"message\":\"No 
Authorization header provided in the request. Each call to Fitbit API should be OAuth 
signed\"}]}"
4

2 に答える 2

1

さて、DTLとGeoff Jentryを使って掘り下げてメールを送った後、ようやく問題を解決しました(たくさんの人に感謝します)。

元のROAuthパッケージでは、oauthGet関数はcurl呼び出しにAuthorization .optを使用せず、次のようなパラメーターもありました。

params <- c(params, as.list(auth))
getForm(url, .params = params, curl = curl, .opts = c(list(httpget = TRUE),  opts,  list(...))))

Fitbit.com Apiは、もう少し具体的なhttps://wiki.fitbit.com/display/API/OAuth+Authentication+in+the+Fitbit+APIで、oauth_paramsの値をラップする必要があり、次のmodを作成しました。

params <-as.list(auth) #dropping the first item in the list which was an extra "GET"
opts=list(httpheader=c(Authorization=paste("OAuth ", paste(names(auth), '="', auth, '"', sep = "", collapse = ",\n   "), sep="", collapse='')))
getForm(url, curl = curl, .opts = c( opts))

パラメータの指定とオプションの一覧表示が問題を引き起こしているようです。

ついに正しいデータのフォームが得られました!

于 2012-07-25T19:18:34.783 に答える
0

まだ持っていない場合は、CRAN で利用できない最新バージョン (0.9.2) があることを確認してください。

http://geoffjentry.hexdump.org/ROAuth_0.9.2.tar.gz

Windows を使用している場合は、次のものを使用する必要があります。

http://geoffjentry.hexdump.org/ROAuth_0.9.2.zip

パッケージの将来の開発に取り組んでいる人は他にもいます。私は彼らがすでに新しいリリースを持っていると思っていましたが、どうやらそうではないようです。

それでもうまくいかない場合は、Fitbit 特有のものである可能性があります。ROAuth でうまく動作しないサイトをいくつか見てきました。0.9.2 がまだ失敗する場合はお知らせください。確認してみます。

于 2012-07-23T20:31:41.087 に答える