Facebook Canvas, Anmeldung bei Facebook auf Mobilgeräten nicht möglich

8

Ich habe eine Facebook-Anwendung auf Leinwand, die sowohl eine Webseite als auch eine bestimmte mobile Seite enthält. Die Webseite funktioniert gut und auch bei der Simulation des Browsers mit der Konsole ist alles in Ordnung.

Aber wenn ich versuche, die App von der Facebook Mobile App aus zu starten, wird die Canvas-App geladen (was korrekt ist), aber sie loggt sich nicht ein.

Ich verwende die Funktion FB.login.

%Vor%

und in den Einstellungen & gt; fortgeschritten - ich habe das: Client-OAuth-Anmeldung, Web-OAuth-Anmeldung, eingebettete Browser-OAuth-Anmeldung, gültige OAuth-Weiterleitungs-URIs und Anmeldung von ordnungsgemäß befüllten Geräten.

aber immer noch von der Facebook Mobile App die Canvas-App nicht die Anmeldung vor.

Ich habe versucht, den ganzen Tag damit zu arbeiten. und ich kann nirgends eine Lösung finden. Ich kann auch nicht die mobile Facebook App debuggen.

irgendwelche Ideen, wie man dieses Problem angeht?

BEARBEITEN

Ich habe auch meine Node-Server-Logs angeschaut und sehe, dass der FB.login nicht einmal aufgerufen wird.

BEARBEITEN 2

Ich habe am Ende den Login mit getLoginStatus ersetzt, was für mich kein Problem ist, da es eine Facebook Canvas App ist ... aber die Frage bleibt, wie man sich anmeldet.

EDIT 3 26.11.2015

naja, getLoginStatus hat mein Problem nicht vollständig gelöst, da es den Benutzer nicht wirklich registriert, also für die Canvas-Spiele, die Sie wahrscheinlich für den ersten Eintrag anmelden müssen, wenn Sie Berechtigungen benötigen ... meine Lösung war, die Anmeldung hinzuzufügen wenn der getLoginStatus nicht_autorisiert wie folgt zurückgibt:

%Vor%

Aber warten Sie, es gibt mehr ... die FB.login Funktion wird nicht gut auf mobilen Canvas-Spielen funktionieren (nicht sicher, ob es nicht ausgelöst wird oder die Browser die Popups bloggen oder beides). Wie auch immer, du musst es aktiv über den Button aufrufen ... also für mobile Canvas-Spiele musste ich einen Startknopf hinzufügen und dann funktioniert das Login.

EDIT 4 (Finale)

schließlich habe ich bemerkt, dass FB.login () nicht ausgelöst wird, es sei denn, es ist ein externes Ereignis, das es auslöst, also musste ich eine Änderung für Mobile Canvas vornehmen, wenn getLoginStatus nicht verbunden zurückkehrt, zeige ich eine Login-Schaltfläche an der Login ... der Rest blieb gleich. Was ich für Mobile gemacht habe, war ähnlich wie die angenommene Antwort nur für meine Bedürfnisse ...

Ich hoffe, das hilft jemandem außer mir ...

    
Jony-Y 08.11.2015, 16:59
quelle

1 Antwort

1

Stellen Sie sicher, dass Sie FB.login () mit einem Ereignis aufrufen, das vom Benutzer ausgelöst wurde, z. B. durch einen Klick auf eine Schaltfläche, da Browser potenziell unsicheres / gefährliches JavaScript, das direkt aufgerufen wird, blockieren können. Dies ist eine zusätzliche Sicherheitsebene für den Endbenutzer. Es gibt 2 Möglichkeiten, eine Login-Schaltfläche zu erstellen:

  1. Erzeuge eine Login-Schaltfläche mit dem Login-Button-Generator der Facebooks: Ссылка

Die generierte Login-Schaltfläche sieht etwa so aus:

%Vor%
  1. Erstellen Sie Ihr eigenes HTML und verwenden Sie ein onclick-Ereignis, um FB.init () aufzurufen:
    %Vor%

Hinweise von der Facebook-Entwickler-Website:

  

Wie in den Referenzdokumenten für diese Funktion angegeben, führt dies zu a   Popup-Fenster mit dem Login-Dialog, und sollte daher nur sein   aufgerufen, wenn jemand auf einen HTML - Button klickt (damit der   Popup wird nicht von Browsern blockiert).

Ссылка

Außerdem ist FB.getLoginStatus der richtige erste Schritt beim Anmelden, um zu überprüfen, ob Ihr Benutzer bei Facebook und in Ihrer App angemeldet ist.

  

Es gibt einige Schritte, die Sie zum Integrieren befolgen müssen   Facebook Loggen Sie sich in Ihre Webanwendung ein, von denen die meisten enthalten sind   im Schnellstart-Beispiel oben auf dieser Seite. Auf hohem Niveau   das sind:

     
  1. Überprüfen Sie den Anmeldestatus, um festzustellen, ob sich bereits jemand in Ihrer App angemeldet hat. Während dieses Schritts sollten Sie auch überprüfen, ob jemand vorhanden ist   hat sich zuvor bei Ihrer App angemeldet, ist aber derzeit nicht angemeldet.
  2.   
  3. Wenn sie nicht angemeldet sind, rufen Sie den Anmeldedialog auf und fragen Sie nach einer Reihe von Datenberechtigungen.
  4.   
  5. Überprüfen Sie ihre Identität.
  6.   
  7. Speichern Sie das resultierende Zugriffs-Token.
  8.   
  9. Machen Sie API-Aufrufe.
  10.   
  11. Abmelden.
  12.   

Ich sehe, dass dein Spiel keinen Login mehr benötigt, aber vielleicht finden andere diese Antwort nützlich. :)

    
ProgrammerGuy 04.01.2016, 01:47
quelle