Facebook app-keine Umleitung von mobilen Website-url
Auf meine app-Einstellungen habe ich als mobile URL dieses:
https://example.herokuapp.com/mobile.php#&ui-state=dialog
Jedoch, wenn ich versuche, Zugriff auf die app von Facebook per smartphone, Facebook Umleitungen, um einen OAuth-URL für ein paar Millisekunden, und dann leitet es auf:
https://example.herokuapp.com/?state=63903485c518f2ae5deca667b9a............#_=_
Als /mobile.php ist verloren, die desktop-version geladen wird, statt.
Wie kann ich dieses Problem beheben? Jede Beratung wird sehr geschätzt.
Vielen Dank
Edit: Stück Sicherheits-code
try {
$facebook = new Facebook(array(
'appId' => AppInfo::appID(),
'secret' => AppInfo::appSecret(),
));
$access_token=$_GET['access_token'];
Log::debug("BaseControl:access token: ". $access_token);
if(isset($access_token)){
$facebook->setAccessToken($access_token);
}
$user_id = $facebook->getUser();
} catch (Exception $e) {
exit("Error getting facebook data");
}
if ($user_id) {
try {
$basic = $facebook->api('/me');//se necesita access token, si no se tiene falla
} catch (FacebookApiException $e) {
if (!$facebook->getUser()) {
exit("Invalid access token");
}
}
if($basic==null){
exit("Application not installed");
}
$user=UsersLogic::getUser($user_id);
if($user==null){
exit("User not registered in database");
}
}
else{
exit("No user logged");
}
- Das Facebook SDK verwendest du?
- JS-API, weil wir tun, JSON Anrufe später. Nur editieren mit den wichtigsten Sicherheits-code, wenn es hilft.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Arturo, ich würde überprüfen, dass Ihre dashboard-Einstellungen korrekt sind. Stellen Sie sicher, dass die "Website mit Facebook-login" - Abschnitt hat die richtige URL, die in deinem Fall, ist das mobile ein. Der tooltip wenn Sie den Mauszeiger über das [?] sagt "die URL für Ihre website. Aus Gründen der Sicherheit werden wir nur redirect auf diese URL". So, um die richtigen Weiterleitungs-URL, die Sie brauchen, um stellen Sie sicher, dass die URL in diesem Feld wird die URL, die Sie möchten, die Benutzer weitergeleitet werden.
Heißt es, Facebook nur redirect auf diese URL für Zwecke der Gefahrenabwehr, also, wenn Sie einen desktop-und mobile version Ihrer app, dann müssen Sie einen Endpunkt Griff, den redirect zu senden der Benutzer auf die richtige Seite. Für Ihren Fall, wie es scheint, die redirect-url auf Ihrer root-Seite. Was sollten Sie dann tun, ist, irgendeine Logik in Ihrer root-Seite, um überprüfen Sie die Benutzer-agent, der die eingehenden Anfragen und die route entsprechend. Ich würde check out http://detectmobilebrowsers.com/ für ein open-source-code-snippet zu erkennen, mobile Browser. Dann sollten Sie Ihre root-URL der Seite in das erste Feld, und die mobile version in der zweiten.
Lassen Sie mich wissen, ob das hilft.
Während dieser fix nicht der Kern des Problems, ich habe eine Idee, die Sie versuchen können, wenn Sie nicht bekommen, alle anderen Antworten:
Auf Ihrer index-Seite für die desktop-version Ihrer app, können Sie den user-agent zu testen, ob es ein mobiles Gerät. Wenn es ist, Sie können dann eine Weiterleitung an Ihre mobile.php Seite.
User-agent-sniffing immer eine schlechte Idee. In der Einstiegspunkt der Anwendung sollten Sie ermitteln, wenn es desktop oder mobile, indem Sie für die "signed request" variable, die Facebook sendet, wenn der Benutzer das laden der app über eine Registerkarte Seite innerhalb von Facebook (D. H. desktop-Benutzer). Wenn der Benutzer den Zugriff auf die app auf dem Handy, außerhalb von Facebook, dann ist diese variable nicht gesendet werden.
php: