pBlack
pBlack

Reputation: 102

How do I pass Android App Facebook Review?

I have had a few round trips with the facebook review team. Some where minor errors, some where crashes. All fixed. When I submit now to the review team, I'm getting the message "Even after logging in, the sharing option gives the error: "Make sure you are signed in." Please look into this, thanks!" Uhhh, Ok?

I know this error is legit because I created it. It's a simple Android Toast message that displays when the logged in facebook user has not "granted" my app the "publish_actions" permission.

This is where things get interesting. So my app fails review because the Facebook tester cannot test the sharing functionality... Uhh duh! I need to pass the review to gain access to that permission (publish_actions)! So now I'm stuck. They will kick it back to me for not being able to test something, that I need to pass their test for! Lol. :)

If anyone has any suggestions for my next submit please feel free? I'm sitting on the fence about programming a Specialized Toast message for the Facebook Review team that quotes directly from the Facebook Review Guidelines about the requirement for the "publish_actions" permission. I'm so close to being done with this app, but I cannot pass the Facebook Submission for the life of me! :) I would just skip this Facebook review stuff, but it's in my project scope so it's required. Thanks in advance for any suggestions / comments.

Upvotes: 0

Views: 1070

Answers (2)

JoniDS
JoniDS

Reputation: 521

https://i.sstatic.net/8SaFB.png

You should create test users when developing your application.

Then, when you submit your Android app for review, indicate the test user that you used (there's a field for that) so that the Facebook reviewer can replicate the way you use your application.

Upvotes: 0

Nhan Nguyen
Nhan Nguyen

Reputation: 495

I don't know how did you implement code for this action. But in my app (always accepted by FB tester), I will ask user for the publish_actions when needed:

private void askForPublishActionsForScores() {
    new AlertDialog.Builder(getActivity())
        .setPositiveButton(R.string.dialog_yes, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int id) {
                // User hit OK. Request Facebook publish permission.
                requestPublishPermissions();                
            }
        })
        .setNegativeButton(R.string.dialog_no, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                // User hit cancel.
                // Do somthing!
            }
        })
        .setTitle(R.string.publish_scores_dialog_title)
        .setMessage(R.string.publish_scores_dialog_message)
        .show();        
}

void requestPublishPermissions() {
    Log.d(TAG, "Requesting publish permissions.");
    final Session session = Session.getActiveSession();
    if (session != null) {
        Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, Arrays.asList("publish_actions"))                    
                .setDefaultAudience(SessionDefaultAudience.FRIENDS)
                .setRequestCode(AUTH_PUBLISH_ACTIONS_SCORES_ACTIVITY_CODE);
        session.requestNewPublishPermissions(newPermissionsRequest);
    }
}

Then, when you need users must granted the publish_actions permission, you have to check:

// check to see that the user granted the publish_actions permission. 
if (!permissions.contains("publish_actions")) {
    // the user didn't grant this permission, so we need to prompt them.
    askForPublishActionsForScores();
    return;
} else {
    // the user is granted this permission
    // do something...
}

Upvotes: 1

Related Questions