Ich benutze HTML 5, um ein paar Dinge zu entwickeln und Facebook JavaScript SDK innerhalb derselben einzufügen.Facebook - JavaScript SDK - So fragen Sie automatisch um Erlaubnis
Ich habe eine Facebook-Anwendung entwickelt, wo ich will:
1) Wenn der Benutzer in Facebook nicht angemeldet ist, ist es für die Anmeldung gefragt, aber wenn der Benutzer angemeldet ist und öffnet die Anwendung, sollte es fragen für die Persmission automatisch, anstatt dass der Benutzer erneut auf den Link mit FB.LOGIN()
klicken muss.
Es gibt einen Stack-Überlauf Frage ist, How do I get my Facebook application to automatically ask for the required permissions post installation, wo sie es tun, indem window.top.location = "<?php echo $loginUrl; ?>";
verwenden, aber wie kann ich diese authenication URL finden in JavaScript?
JavaScript-Code:
<div id="fb-root"></div>
<script>
// Load the SDK asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
// Init the SDK upon load
window.fbAsyncInit = function() {
FB.init({
appId : 'appid', // App ID
channelUrl : '//www.domain.com/channel.html', // Channel file
status : true, // Check login status
cookie : true, // Enable cookies to allow the server to access the session
xfbml : true // Parse XFBML
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
document.getElementById('auth-loggedout').style.display = 'none';
document.getElementById('auth-loggedinnotauthenticate').style.display = 'none';
document.getElementById('loginauthenicated').style.display = 'block';
}
else
if (response.status === 'not_authorized') {
window.top.location = "https://www.facebook.com/dialog/oauth?client_id=id&redirect_uri=http://apps.facebook.com/appp/";
}
else {
window.top.location = "https://www.facebook.com/login.php?api_key=id&skip_api_login=1&display=page&cancel_url=http://apps.facebook.com/appp/";
}
});
</script>
Hallo Nitzan, Dank für die Details. https://www.facebook.com/dialog/oauth?client_id=myid&redirect_uri=http://apps.facebook.com/testnamespace Das funktioniert, aber ich habe versucht, 3 Konten zu verwenden. Wenn ein Benutzer zu dieser Zeichenfolge umgeleitet wird, wird in einigen Fällen "Ein Fehler ist aufgetreten. Bitte versuchen Sie es später erneut." Können Sie bitte eine Idee geben? –
Die redirect_uri sollte keine Facebook-Domain-URL sein, wie Sie es geschrieben haben, Sie sollten auf Ihren eigenen Server umleiten, dann müssen Sie verarbeiten, was Sie wollen, und dann den Benutzer zu * http: //apps.facebook umleiten ... . * –
Aber sie haben erwähnt, dass wir das in http://developers.facebook.com/docs/authentication/server-side/ tun können. Auch das funktionierte vor einiger Zeit. Ist es mit langsamen Netzwerk verbunden, wo js nicht richtig geladen ist –