コード例 #1
0
  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;
  }
コード例 #2
0
  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;
  }