Изучаю Retrofit2, пытаюсь получить токен Yandex disk, в документации яндекса написано, чтобы получить токен необходимо для начала подтвердить разрешения пользователя и получить код. В документации об этом написано:
Получение токена в обмен на код, извлеченный из URL:
Приложение направляет пользователя на страницу Яндекс.OAuth, где он может разрешить доступ к своим данным.
Пользователь разрешает доступ приложению.
Яндекс.OAuth перенаправляет пользователя на адрес, указанный в поле Callback URL при регистрации приложения. Код подтверждения (или описание ошибки) передается в параметре URL перенаправления.
Приложение получает адрес перенаправления и извлекает код подтверждения.
Приложение отправляет POST-запрос с кодом.
Яндекс.OAuth возвращает токен в теле ответа.
Получаю код так:
Имеется сервис, создающий синглтоном экземпляр ретрофита. В странном методе пук:) получаю этот самый код:
public class NetworkService {
private static NetworkService mInstance;
private static final String BASE_URL = "https://oauth.yandex.ru";
private Retrofit mRetrofit;
private static final String ID = "здесь мой id";
private static final String PASSWORD = "здесь мой пароль";
private static final String CALLBACK_URI = "здесь колбэк";
private NetworkService() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
Gson gson = new GsonBuilder()
.setLenient()
.create();
OkHttpClient.Builder client = new OkHttpClient.Builder()
.addInterceptor(interceptor);
mRetrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(client.build())
.build();
}
public static NetworkService getInstance() {
if (mInstance == null) {
mInstance = new NetworkService();
}
return mInstance;
}
public ApiService getJSONApi() {
return mRetrofit.create(ApiService.class);
}
public static void puk() {
Call<AccessCodeYandex> call = NetworkService.getInstance().getJSONApi().getToken( ID);
call.enqueue(new Callback<AccessCodeYandex>() {
@Override
public void onResponse(Call<AccessCodeYandex> call, Response<AccessCodeYandex> response) {
System.out.println();
}
@Override
public void onFailure(Call<AccessCodeYandex> call, Throwable t) {
System.out.println();
}
});
}
}
Интерфейс для rest запросов:
public interface ApiService {
@POST("/authorize?response_type=code")
@FormUrlEncoded
Call<AccessCodeYandex> getToken1(@Field("client_id") String client_id);
}
Ну и модель для возврата ответа:
@NoArgsConstructor
@Getter
@Setter
public class AccessCodeYandex {
@SerializedName("code")
@Expose
private String code;
@SerializedName("state")
@Expose
private String state;
}
Попадаю в Failure с ошибкой:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
Вот так запускаю страницу для подтверждения. Как сделать ридерект с полученным кодом в приложение?
private void getView() {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Title here");
WebView wv = new WebView(this);
wv.loadUrl("https://oauth.yandex.ru/authorize?response_type=code&client_id=мой айди");
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
alert.setView(wv);
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
alert.show();
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
В разметке активити есть область, в которой должны поместиться изображения(от 1 до 10)Соответственно они должны заполнять всю эту область...
Заметил что с размерами экрана на телефонах творится что-то непонятноеРешил проверить - создал 3 блока шириной 1080px, 967px(подобрал для своего...
Вот такой код попал ко мне в руки, и я не пойму, во-первых, что это, во-вторых, как превратить это в понятный вид:
Пытаюсь настроить webpack для разработки приложения на vueКогда делаю сборку приложения все стили в компонентах и sсss файлах, которые написал...