Интеграция API Fitbit с использованием oAuth 2.0 с пользовательскими вкладками Chrome в Android

Я создаю приложение для Android, которое интегрирует Fitbit для получения данных пользователя.

Для интеграции FitBit я использую пользовательские вкладки Chrome. При передаче uri он перенаправляется на страницу доступа, но когда я нажимаю «Разрешить», он отображает ошибку и не перенаправляется на действие, где я определяю фильтр намерений.

У меня проблема с redirect_uri. У меня нет сервера, поэтому я поставил redirect_uri как ******://logincallback

      <activity android:name=".ChromeCustomTabActivity">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data
            android:host="logincallback"
            android:scheme="******" />
    </activity>

введите здесь описание изображения

введите здесь описание изображения

РЕШЕНО

<activity android:name=".ChromeCustomTabActivity">
       <intent-filter>
        <action android:name="android.intent.action.VIEW" />
         <category android:name="android.intent.category.DEFAULT" />
         <category android:name="android.intent.category.BROWSABLE" />
          <data
            android:host="logincallback"
            android:scheme="******" />
        </intent-filter>
    </activity>

person Nikita Shah    schedule 29.09.2016    source источник
comment
Эй, дорогой, можешь выложить код? Я действительно заинтересован в этой части, но я новичок в Android, и я действительно застрял.   -  person theantomc    schedule 22.10.2019
comment
Код недоступен из соображений конфиденциальности   -  person Nikita Shah    schedule 12.07.2020
comment
Могу ли я узнать, что на самом деле означает хост и схема и какие значения для них нужно добавить?   -  person SVG    schedule 06.04.2021


Ответы (1)


Redirect_uri должен точно совпадать с одним из значений, указанных в настройках вашего приложения (URL обратного вызова). И URL-адрес обратного вызова должен быть общедоступным API, доступным для fitbit, который может быть URL-адресом веб-сайта, размещенным локально в вашей системе.

Проверь это:

https://dev.fitbit.com/docs/oauth2/#redirect-uris

person Manav    schedule 30.09.2016
comment
означает? если я поставлю resirect uri как «myapplication://logincallback», то то же самое должно быть в URL-адресе обратного вызова. Верно? - person Nikita Shah; 30.09.2016
comment
Если у вас есть интеграция с FitBit API, можете ли вы предоставить фрагмент кода и пример URL-адреса обратного вызова fitbit? - person Nikita Shah; 30.09.2016
comment
У меня нет фрагмента кода. Ваш URL-адрес обратного вызова должен быть общедоступным. - person Manav; 30.09.2016
comment
общедоступный API, доступный для fitbit, который может быть URL-адресом веб-сайта, размещенным локально в вашей системе... Что это значит? - person Nikita Shah; 30.09.2016
comment
можете ли вы обновить URL-адрес в адресной строке после нажатия кнопки «Разрешить» и ошибки, которую вы получаете четко. - person Manav; 30.09.2016
comment
Это решено, тег Manifest ‹intent-filter› отсутствовал по глупой ошибке сам по себе..... - person Nikita Shah; 30.09.2016
comment
@NikitaShah кажется, ты нашел ответ на свой вопрос. Не могли бы вы опубликовать это как ответ на свой вопрос, чтобы его можно было пометить как правильный ответ? - person andreban; 05.10.2016
comment
Извините за поздний ответ. Это написано после РЕШЕНО. Если не получите, дайте мне знать - person Nikita Shah; 06.10.2016