private void shareOnFB() {
    // Create an object
    Set<String> permissions = AccessToken.getCurrentAccessToken().getPermissions();
    if (!permissions.contains("publish_actions")) {
      LoginManager.getInstance()
          .registerCallback(
              callbackManager,
              new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                  if (AccessToken.getCurrentAccessToken()
                      .getPermissions()
                      .contains("publish_actions")) {
                    shareOnFB();
                  }
                }

                @Override
                public void onCancel() {}

                @Override
                public void onError(FacebookException e) {}
              });
      LoginManager.getInstance()
          .logInWithPublishPermissions(PaymentActivity.this, Arrays.asList("publish_actions"));
    } else {
      String dateString = "";
      String dateString2 = "";
      try {
        Date date = new Date(mEventData.getSchedule().getStart_date());
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.ENGLISH);
        dateString = sdf2.format(date);
        date.setTime(mEventData.getSchedule().getEnd_date());
        dateString2 = sdf2.format(date);

      } catch (Exception e) {
        e.printStackTrace();
        Crashlytics.logException(e);
      }

      String url = "http://purplesq.com/event/" + mEventData.get_id();

      ShareOpenGraphObject eventObject =
          new ShareOpenGraphObject.Builder()
              .putString("fb:app_id", "852292264845107")
              .putString("og:type", "purplesquirrel:event")
              .putString("og:title", mEventData.getName())
              .putString("og:description", mEventData.getSummary())
              .putString("og:url", url)
              .putString("og:image", mEventData.getThumbnail())
              .build();

      ShareOpenGraphAction action =
          new ShareOpenGraphAction.Builder()
              .setActionType("purplesquirrel:attend")
              .putString("start_time", dateString)
              .putString("expires_time", dateString2)
              .putObject("event", eventObject)
              .build();

      ShareOpenGraphContent content =
          new ShareOpenGraphContent.Builder()
              .setPreviewPropertyName("event")
              .setAction(action)
              .build();

      if (ShareDialog.canShow(ShareOpenGraphContent.class)) {
        ShareDialog shareDialog = new ShareDialog(this);
        shareDialog.registerCallback(
            callbackManager,
            new FacebookCallback<Result>() {
              @Override
              public void onSuccess(Result result) {
                if (!TextUtils.isEmpty(result.getPostId())) {
                  if (Config.DEBUG) {
                    Log.i("Nish", "FB Share Success : " + result.getPostId());
                  }
                  findViewById(R.id.activity_payment_coupon_cardview).setVisibility(View.GONE);
                } else {
                  if (Config.DEBUG) {
                    Log.i("Nish", "FB Share Success without postId ");
                  }
                }
              }

              @Override
              public void onCancel() {}

              @Override
              public void onError(FacebookException e) {}
            });
        shareDialog.show(content);
      }
    }
  }