Ich verwende den folgenden Code, um den Standort des Benutzers zu ermitteln. Der Standort wird jedoch nicht zurückgegeben
FB.api('/me?fields=picture,location', function(res) {
console.log(res); // no location
});
Irgendeine Idee, was ich falsch mache und wie ich den Standort des Benutzers ermitteln kann?
AKTUALISIEREN
Mit dem Graph API Explorer wird der Standort des Benutzers angegeben, mit dem obigen Code jedoch nicht.
UPDATE 2
Irgendeine Idee, wie ich mithilfe des Facebook JavaScript SDK den Standort des Benutzers ermitteln kann?
Wenn es im API-Explorer funktioniert, aber nicht in Ihrer App, kann es nur einen Grund geben: Sie haben nicht mit der user_location
Berechtigung autorisiert . Im API-Explorer können Sie es einfach in einem Popup auswählen. In Ihrem Code müssen Sie speziell danach fragen FB.login
:
FB.login(function(response) {
console.log(response);
if (response.authResponse) {
//user just authorized your app
FB.api('/me?fields=picture,location', function(res) {
console.log(res);
});
}
}, {scope: 'user_location', return_scopes: true});
Größeres Beispiel: http://www.devils-heaven.com/facebook-javascript-sdk-login/
Stellen Sie sicher, dass Sie dies als Benutzer mit einer Rolle in der App (Administrator, Entwickler, Tester) versuchen. Andernfalls wird nicht einmal nach der Erlaubnis gefragt . Wenn Sie an die Öffentlichkeit gehen möchten, müssen Sie zuerst den Überprüfungsprozess durchlaufen: https://developers.facebook.com/docs/facebook-login/review
Ich habe den return_scopes
Parameter und a console.log
zu Beginn des ersten Rückrufs hinzugefügt , die Antwort in den Chrome Dev Tools debuggt und sichergestellt, dass sie die user_location
Berechtigung enthält.
Übrigens, Sie erhalten auch in der Antwort ein Zugriffstoken. Verwenden Sie den Debugger, um nach den autorisierten Berechtigungen zu suchen: https://developers.facebook.com/tools/debug/accesstoken/
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen