2016-12-13 16 views
0

Fitbit intra-day 시계열 데이터에 액세스하려고합니다. 아래 코드를 실행하면 항상 다음 오류가 발생합니다. "개발자 정보 : invalid_request - 잘못된 redirect_uri 매개 변수 값". httpt를 사용하여 Fitbit Intra-Day Time Series에 액세스 중 : invalid redirect_uri

require(httr) 

Sys.setenv("HTTR_SERVER_PORT" = "1410/") 

fitbit.app <- oauth_app("[MyAppName}", key = "[MyClientID]", secret = "[MySecret]") 

fitbit.ep <- oauth_endpoint(
    request = "https://api.fitbit.com/oauth2/token", 
    authorize = "https://www.fitbit.com/oauth2/authorize", 
    access = "https://api.fitbit.com/oauth2/token" 
) 

fitbit.token <- oauth2.0_token(fitbit.ep, 
           fitbit.app, 
           scope=c("heartrate"), 
           use_basic_auth = T) 

나는 콜백 URL " http://localhost:1410/"을 가지고 https://dev.fitbit.com에서 내 응용 프로그램을 구성했습니다.

동일한 문제가 여기에 설명되었습니다. https://community.fitbit.com/t5/Web-API-Development/Having-trouble-with-redirect-uri-via-httr-in-R/m-p/1286028/highlight/false#M5194. 그러나 그 해결책은 거기에 해결책이 없다고 표시했습니다.

또한 "response_type = token"대신 "response_type = code"가 설정되어 있는지 궁금합니다. 나는 여분의 매개 변수 type = "token"을 설정하려고 시도했지만 변경되지 않았습니다.

누군가 도와 드릴 수 있습니까?

답변

1

좋아요, 다행히도 저는 문제를 직접 발견했습니다. 대답은 다른 사람에게도 유용 할 수 있습니다.

위의 코드에서 Fitbit 도우미 페이지 : https://dev.fitbit.com/apps/oauthinteractivetutorial에 의해 생성 된 인증 URL을 비교했습니다.

이는 httr에서 파생 된 redirect_uri에 접미어 "% 2F"이 두 번 연속으로 포함되어 있음을 나타냅니다. 즉, 인코딩 된 redirect_uri는 "http://localhost:1410/"대신 "http://localhost:1410//"입니다. 이 용액을 상기 코드에

Sys.setenv("HTTR_SERVER_PORT" = "1410") 

의해

Sys.setenv("HTTR_SERVER_PORT" = "1410/") 

대체한다. 물론 환경 변수를 "어딘가에"1410 /로 설정하는 코드 조각을 발견했습니다. 거기서 그것은 일을 시작하는 것이 핵심 열쇠라고했습니다. 인생이 다 그렇지.

다른 사람들에게 도움이되기를 바랍니다. 이 망할 fitbit API는 이미 내게 많은 골칫거리가되었다.