private void shareOpenGraphContent()

in facebook-share/src/main/java/com/facebook/share/ShareApi.java [227:276]


  private void shareOpenGraphContent(
      final ShareOpenGraphContent openGraphContent,
      final FacebookCallback<Sharer.Result> callback) {
    // In order to create a new Open Graph action using a custom object that does not already
    // exist (objectID or URL), you must first send a request to post the object and then
    // another to post the action.  If a local image is supplied with the object or action, that
    // must be staged first and then referenced by the staging URL that is returned by that
    // request.
    final GraphRequest.Callback requestCallback =
        new GraphRequest.Callback() {
          @Override
          public void onCompleted(GraphResponse response) {
            final JSONObject data = response.getJSONObject();
            final String postId = (data == null ? null : data.optString("id"));
            ShareInternalUtility.invokeCallbackWithResults(callback, postId, response);
          }
        };
    final ShareOpenGraphAction action = openGraphContent.getAction();
    final Bundle parameters = action.getBundle();
    this.addCommonParameters(parameters, openGraphContent);
    if (!Utility.isNullOrEmpty(this.getMessage())) {
      parameters.putString("message", this.getMessage());
    }

    final CollectionMapper.OnMapperCompleteListener stageCallback =
        new CollectionMapper.OnMapperCompleteListener() {
          @Override
          public void onComplete() {
            try {
              handleImagesOnAction(parameters);

              new GraphRequest(
                      AccessToken.getCurrentAccessToken(),
                      getGraphPath(URLEncoder.encode(action.getActionType(), DEFAULT_CHARSET)),
                      parameters,
                      HttpMethod.POST,
                      requestCallback)
                  .executeAsync();
            } catch (final UnsupportedEncodingException ex) {
              ShareInternalUtility.invokeCallbackWithException(callback, ex);
            }
          }

          @Override
          public void onError(FacebookException exception) {
            ShareInternalUtility.invokeCallbackWithException(callback, exception);
          }
        };
    this.stageOpenGraphAction(parameters, stageCallback);
  }