URL проверки подлинности Dribbble не работает в Android

Это api doc. http://developer.dribbble.com/v1/oauth/

Это идентификаторы клиента:

ID клиента

3acdea730eaae4ea51dadf296be4e8edf7cd4b6ab030ce69c1de0d1a335b679d

Секрет клиента

4a9773911cd2304fa23047e703e35fffbd443f32a9c73207aa60b45852e17b64

Токен клиентского доступа

57fe6dc09292e4dadce94a3dc9fd895117792a48f7194bbc5b8bd229e6ef1388

Java-код

String LOGIN_CALLBACK = "placeholder.com";
String LOGIN_URL = "https://dribbble.com/oauth/authorize?client_id="
            + "3acdea730eaae4ea51dadf296be4e8edf7cd4b6ab030ce69c1de0d1a335b679d"
            + "&redirect_uri=http%3A%2F%2F" + LOGIN_CALLBACK
            + "&scope=public+write+comment+upload";

context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(LOGIN_URL)));

в манифесте

<activity
            android:name=".DribbbleLogin"
            android:exported="true"
            android:launchMode="singleTop">
            <intent-filter>
                <data
                    android:host="dribbble-auth-callback"
                    android:scheme="plain" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
        </activity>

что должно быть помещено в URL обратного вызова и что должно быть передано в URL перенаправления, чтобы поток перенаправлял в мое приложение?

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

2 ответа

Ваш callbackUrl должен быть как plain://example.com и есть еще одна вещь, которую нужно сделать в манифесте Android

android:host="example.com"
android:scheme="plain"

Просто вставьте callbackurl "plain://example.com"

в манифесте

<activity
            android:name=".DribbbleLogin"
            android:exported="true"
            android:launchMode="singleTop">
            <intent-filter>
                <data
                    android:host="example.com"
                    android:scheme="plain" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
        </activity>

В DribbbleLogin деятельности

String loginCallback = "electedface.com";
String code;
Intent intent = getIntent();
if (intent != null
                && intent.getData() != null
                && !TextUtils.isEmpty(intent.getData().getAuthority())
                && loginCallback.equals(intent.getData().getAuthority())) {
    code = intent.getData().getQueryParameter("code");
}

Вызовите URL для входа в систему " https://dribbble.com//oauth/token" с помощью dribbble_client_id, dribbble_client_secret и этого кода. вы получите access_token, token_type, область действия в json.

Спасибо всем

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