Autenticación Oauth a Fitbit usando httr
(2)
El problema proviene de la biblioteca httr, que usa curlEscape para codificar parámetros, mientras que las especificaciones OAuth 1.0 requieren la codificación porcentual (consulte esta página ).
Reemplazar las llamadas a curlEscape con curlPercentEncode resuelve el problema.
muchas gracias a @mark-s por su ayuda.
Estoy intentando conectarme a la api de Fitbit usando la biblioteca httr .
Usando los ejemplos provistos, se me ocurrió el siguiente código:
library(httr)
key <- ''<edited>''
secret <- ''<edited>''
tokenURL <- ''http://api.fitbit.com/oauth/request_token''
accessTokenURL <- ''http://api.fitbit.com/oauth/access_token''
authorizeURL <- ''https://www.fitbit.com/oauth/authorize''
fbr <- oauth_app(''fitbitR'',key,secret)
fitbit <- oauth_endpoint(tokenURL,authorizeURL,accessTokenURL)
token <- oauth1.0_token(fitbit,fbr)
sig <- sign_oauth1.0(fbr,
token=token$oauth_token,
token_secret=token$oauth_token_secret
)
Obtengo la Autenticación completa. mensaje de httr, pero al intentar acceder a la API, se emite un mensaje de error
GET("http://api.fitbit.com/1/user/-/activities/date/2012-08-29.json", sig)
Response [http://api.fitbit.com/1/user/-/activities/date/2012-08-29.json]
Status: 401
Content-type: application/x-www-form-urlencoded;charset=UTF-8
{"errors":[{"errorType":"oauth","fieldName":"oauth_access_token","message":"Invalid signature or token ''<edited>'' or token ''<edited>''"}]}
¿Alguna pista sobre cuál podría ser el problema?
Lo único que noto es que su llamada para obtener la firma es ligeramente diferente a los ejemplos de httr. Los ejemplos de httr son:
sig <- sign_oauth1.0(myapp, token$oauth_token, token$oauth_token_secret)
Mientras tu código es:
sig <- sign_oauth1.0(fbr,
token=token$oauth_token,
token_secret=token$oauth_token_secret
)
¿Necesita el "token =" y "token_secret =" en su código?