private boolean shareOrLogin(final String url, final String comment) { // определяем callback на операции с получением токена odnoklassnikiObject.setOkListener( new OkListener() { @Override public void onSuccess(final JSONObject json) { final String token = json.optString("token"); Log.i(TAG, "Odnoklassniki accessToken = " + token); if (token == null) Toast.makeText( webView.getContext(), "Не удалось авторизоваться в приложении через \"Одноклассников\"." + "\nОшибка на сервере \"Одноклассников\".", Toast.LENGTH_LONG) .show(); else share(url, comment); } @Override public void onError(String error) { Log.i(TAG, "Auth error"); Toast.makeText( webView.getContext(), "Ошибка во время авторизации в приложении через \"Одноклассников\".", Toast.LENGTH_LONG) .show(); } }); // вызываем запрос авторизации. После OAuth будет вызван callback, определенный для объекта odnoklassnikiObject.requestAuthorization(webView.getContext(), false, OkScope.VALUABLE_ACCESS); return true; }
private boolean login(final JSONArray permissions, final CallbackContext context) { odnoklassnikiObject.setOkListener( new OkListener() { @Override public void onSuccess(final JSONObject json) { final String token = json.optString("access_token"); Log.i(TAG, "Odnoklassniki accessToken = " + token); new AsyncTask<String, Void, String>() { @Override protected String doInBackground(String... args) { try { return odnoklassnikiObject.request("users.getCurrentUser", null, "post"); } catch (IOException e) { e.printStackTrace(); context.sendPluginResult( new PluginResult(PluginResult.Status.ERROR, "OK login error:" + e)); context.error("Error"); } return null; } @Override protected void onPostExecute(String result) { try { JSONObject loginDetails = new JSONObject(); loginDetails.put("token", token); loginDetails.put("user", new JSONObject(result)); context.sendPluginResult( new PluginResult(PluginResult.Status.OK, loginDetails.toString())); context.success(); } catch (Exception e) { String err = "OK login error: " + e; Log.e(TAG, err); context.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, err)); context.error(err); } } }.execute(); } @Override public void onError(String error) { Log.i(TAG, "OK login error: " + error); context.sendPluginResult( new PluginResult(PluginResult.Status.ERROR, "OK login error: " + error)); context.error("OK login error: " + error); } }); // вызываем запрос авторизации. После OAuth будет вызван callback, определенный для объекта String perm = null; if (permissions != null && permissions.length() > 0) perm = permissions.toString(); else perm = OkScope.VALUABLE_ACCESS; odnoklassnikiObject.requestAuthorization(webView.getContext(), false, perm); return true; }