问题
Prologue:
I have about the same problem as described in the previously asked question (FB add friend dialog on mobile doesnt work).
But since there is no real solution to this problem made known other than the comment:
"it started working ... I didnt change anything." [...] (@dinodsaurus)
I'm asking it again. With some extra information specific to my case.
I'm using the facebook friend dialog by redirecting (302) to an URL like: (https://www.facebook.com/dialog/friends/?id=3500194&app_id=531355753613866&redirect_uri=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F19403197%2Ffacebook-friend-dialog-not-working-on-mobile%23success)
The above URL works fine on both a desktop and a mobile browser.
Facebook automaticly redirects the before mentioned URL to their m.facebook.com
domain while using a mobile device/browser. This renders the display=touch
version of the dialog (see dialog reference).
This all seems very normal (and is actually wanted behavior).
But... it goes wrong when I confirm that I want to send the friend request. And only when I confirm it using a mobile device.
The message that I get after confirming on my mobile is:
"Sorry, something went wrong.
We're working on getting this fixed as soon as we can."
(Be sure to use your phone's browser for the above link or directly visit m.facebook.com
using this link to reproduce the error.)
OK, so I waited two days now since I sent a bugreport (I found out I actually didn't do it the right way but I guess it's already filed before) for this error to Facebook and it seems like there is no fix. Also it seems to me that it's not likely they leave this broken for such a long time. Unless...
Main question:
So my question is actually: Does anybody know of any reason that Facebook might have for possibly not fixing this error? And if so, is there any way around this while still using a reasonable display style for mobile devices?
Examples of solutions are very welcome... ;)
Edit:
I just filed a Repro for this bug. If you can reproduce the error that I describe here please file a Repro yourself at: https://developers.facebook.com/bugs/309157325894924 so as to give this bug more priority.
回答1:
As answered by Wimagguc in this question you may try this:-
The underlying problem is that the Facebook API is not yet ready for all the display types, and the friends dialog cannot be shown for the mobile display.
protected static String DIALOG_BASE_URL = "https://m.facebook.com/dialog/";
protected static String DIALOG_BASE_URL_FOR_MISSING_SCREENS = "https://www.facebook.com/dialog/";
public void dialog(Context context, String action, Bundle parameters,
final DialogListener listener) {
boolean missingScreen = action.contentEquals("friends") ? true : false;
String endpoint = missingScreen ? DIALOG_BASE_URL_FOR_MISSING_SCREENS : DIALOG_BASE_URL;
endpoint += action;
parameters.putString("display", missingScreen ? "popup" : "touch");
parameters.putString("redirect_uri", REDIRECT_URI);
if (action.equals(LOGIN)) {
parameters.putString("type", "user_agent");
parameters.putString("client_id", mAppId);
} else {
parameters.putString("app_id", mAppId);
}
if (isSessionValid()) {
parameters.putString(TOKEN, getAccessToken());
}
String url = endpoint + "?" + Util.encodeUrl(parameters);
if (context.checkCallingOrSelfPermission(Manifest.permission.INTERNET)
!= PackageManager.PERMISSION_GRANTED) {
Util.showAlert(context, "Error",
"Application requires permission to access the Internet");
} else {
new FbDialog(context, url, listener).show();
}
}
回答2:
Facebook decided that the bug has no priority and changed the status to "Won't Fix" at December 7th, 2013.
The original bug report was marked as a duplicate of https://developers.facebook.com/x/bugs/309157325894924/. See this page for more info.
I think this is a shame and I would still like to urge anyone who thinks the same to open a new bugreport for the issue. Or leave a comment on the report stated above. Since this seems to be the only way to create some sense of urgency for solving this problem.
PS: I recommend a bugreport since my comments were deleted lately.
PS2: Even my bugreport "to state the won't fix issue in the documentation" seems to be ignored. So every day new people will research the possibilities of a mobile web app with a connection to facebook and will wrongly assume they can use the "facebook friend dialog" in their web app on mobile devices. My hope is that they will find this page during their research, and steer clear off that assumption.
来源:https://stackoverflow.com/questions/19403197/facebook-friend-dialog-not-working-on-mobile