2016-12-13 2 views
0

Я пытаюсь получить доступ к данным Fitbit внутридневных временных рядов. Когда я выполняю приведенный ниже код, я всегда получаю следующую ошибку: «Информация о разработчике: invalid_request - Недопустимое значение параметра redirect_uri».Доступ к Fitbit Intra-Day Time Series с httr: 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) 

Я настроил мое приложение под https://dev.fitbit.com иметь обратный вызов URL "http://localhost:1410/".

Та же проблема была описана здесь: 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 = code» установлен вместо «response_type = токен», как и следовало ожидать. Я попытался установить дополнительный параметр type = "token", но это не изменит его.

Может кто-нибудь помочь?

ответ

1

Хорошо, к счастью, я сам нашел проблему. Ответ может быть полезен и для кого-то другого.

Я сравнил URL-адрес авторизации с приведенным выше кодом с помощью кода, созданного с помощью справочной страницы Fitbit: https://dev.fitbit.com/apps/oauthinteractivetutorial.

Это указывает на то, что 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 /» где-то в сети. Там было сказано, что это центральный ключ, чтобы заставить все работать. Такова жизнь.

Я надеюсь, что это поможет другим. Этот проклятый API-интерфейс уже вызвал у меня много головной боли.

Смежные вопросы