in facebook-gamingservices/src/main/java/com/facebook/gamingservices/GameRequestDialog.java [263:313]
private void showForCloud(final GameRequestContent content, final Object mode) {
Context context = this.getActivityContext();
AccessToken currentAccessToken = AccessToken.getCurrentAccessToken();
if (currentAccessToken == null || currentAccessToken.isExpired()) {
throw new FacebookException(
"Attempted to open GameRequestDialog with an invalid access token");
}
final DaemonRequest.Callback requestCallback =
new DaemonRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
if (mCallback != null) {
if (response.getError() != null) {
mCallback.onError(new FacebookException(response.getError().getErrorMessage()));
} else {
mCallback.onSuccess(new Result(response));
}
}
}
};
String app_id = currentAccessToken.getApplicationId();
String action_type = content.getActionType() != null ? content.getActionType().name() : null;
JSONObject parameters = new JSONObject();
JSONArray to = new JSONArray();
try {
parameters.put(SDKConstants.PARAM_APP_ID, app_id);
parameters.put(SDKConstants.PARAM_GAME_REQUESTS_ACTION_TYPE, action_type);
parameters.put(SDKConstants.PARAM_GAME_REQUESTS_MESSAGE, content.getMessage());
parameters.put(SDKConstants.PARAM_GAME_REQUESTS_CTA, content.getCta());
parameters.put(SDKConstants.PARAM_GAME_REQUESTS_TITLE, content.getTitle());
parameters.put(SDKConstants.PARAM_GAME_REQUESTS_DATA, content.getData());
parameters.put(SDKConstants.PARAM_GAME_REQUESTS_OPTIONS, content.getFilters());
if (content.getRecipients() != null) {
for (String recipient : content.getRecipients()) {
to.put(recipient);
}
}
parameters.put(SDKConstants.PARAM_GAME_REQUESTS_TO, to);
DaemonRequest.executeAsync(
context, parameters, requestCallback, SDKMessageEnum.OPEN_GAME_REQUESTS_DIALOG);
} catch (JSONException e) {
if (mCallback != null) {
mCallback.onError(new FacebookException("Couldn't prepare Game Request Dialog"));
}
}
}