Доступ к дневному временному ряду Fitbit с помощью httr: недопустимый redirect_uri

Я пытаюсь получить доступ к данным дневного ряда Fitbit. Когда я выполняю приведенный ниже код, я всегда получаю следующую ошибку: "Информация для разработчика: invalid_request - недопустимое значение параметра 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. Но ответ, помеченный как решение, не работает.

Кроме того, мне интересно, почему "response_type = code" установлен, а не "response_type = token", как я ожидал. Я пытался установить дополнительный параметр type = "token", но это не меняет его.

Может кто-нибудь, пожалуйста, помогите?

1 ответ

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

Я сравнил URL авторизации из приведенного выше кода с 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 уже вызвал у меня сильную головную боль.

Другие вопросы по тегам