2 Stimmen

Facebook API Website - JavaScript SDK - Verwirrt

Ich habe mich in den Anleitungen von Facebook über die Anmeldung bei meiner Website mit deren API umgesehen. Im Moment habe ich mich mit dem JS SDK beschäftigt. Ich bin PHP-Programmierer, dachte aber, das JS SDK wäre einfacher... zumindest dachte ich das. Ich bin wirklich verwirrt von allem, wirklich. Hier sind einige einfache Fragen:

  1. Wenn ich "nur" die API für die Anmeldung bei meiner Website verwenden möchte und sonst nichts, würde ich dann PHP oder JS verwenden?
  2. Wie interagiere ich nun - wenn ich JS verwende - richtig mit Facebook? Im Moment ist es in Facebook anmelden und aus Facebook anmelden. Was ich will, ist nur Zugriff auf meine app (wie normal) und Abmeldung von app zu gewähren.
  3. Wenn noch mit JS - wie mache ich, wenn Sätze bestimmen, ob ein Benutzer eingeloggt ist? Ich meine, wenn ein Benutzer eingeloggt ist, möchte ich einige Benutzerinformationen anzeigen und die Möglichkeit, Einstellungen zu bearbeiten.

Alles in allem denke ich, dass ich vielleicht die Funktion von JS SDK oder was missverstanden habe? Ich bin wirklich verwirrt, und ich brauche wirklich etwas Hilfe mit immer auf der Straße wieder.

* NEU *

Also, jedes Mal, wenn ich etwas zu einem angemeldeten Benutzer anzeigen möchte, muss ich die FB.getLoginStatus(); verwenden?

4voto

Sahil Mittal Punkte 20533

F- Wenn ich "nur" die API für die Anmeldung bei meiner Website verwenden möchte und sonst nichts, würde ich dann PHP oder JS verwenden?

A- Sie können beides verwenden. Siehe- Anmeldung

F - Wie interagiere ich richtig mit Facebook?

A- Sobald der Benutzer die App autorisiert hat, können Sie alle Methoden über einen API-Aufruf verwenden (unter Verwendung Ihres Facebook-Objekts). Gehen Sie dies durch - JS SDK-Referenz

F- Wie stelle ich fest, ob ein Benutzer eingeloggt ist?

A- Sie können verwenden FB.getLoginStatus

1voto

Vishwesh Shetty Punkte 667

Ich habe diesen Code kürzlich erstellt, um einem Freund die Facebook-Login-Funktionalität zu erklären. Es gibt ausführliche Kommentare für jede Zeile des Codes. Ich bin mir nicht sicher, ob dies der beste Weg ist, es zu tun. Aber es ist sehr einfach zu verstehen.

<?php
//include Facebook library File
include_once "src/facebook.php";
//Application Configurations
//Declare variables app_id,app_secret, we get app_id,app_secret values from app dashboard. 
$app_id     = "xxxxxxxxxxxxxxxxxx";
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

// Create our application instance
//we create $facebook instance and would use it to access various Facebook library functions
$facebook = new Facebook(array(
    'appId'     => $app_id,
    'secret'    => $app_secret,
    ));

?>
<html>
<head>
</head>
<body>
<?php
// Get User ID
$user = $facebook->getUser();
//  $facebook->getUser() is a function which would return a user id if someone is
//  logged in  on Facebook currently (In some other window or tab)
// We may or may not have this data based 
// on whether the user is logged in.
// If we have a $user id here, it means we know 
// the user is logged into Facebook,
// but we don’t know if the user has authorized our application.
// i.e whether user has already given our app permissions to access his data or not
if ($user) {
 /*
 * Facebook user retrieved
 * $user : Holds the Facebook Users unique ID
 * */
 try {
        // We try to get users data assuming he has authoized are app if we dont get data we display login button in catch block.
        $userinfo = $facebook->api('/me');
        echo "<br/>User id : ".$userinfo['id'];
        echo "<br/>Name : ".$userinfo['name'];
        echo "<br/>Gender : ".$userinfo['gender'];
        echo "<br/>Email : ".$userinfo['email'];
        echo "<br/>Location : ".$userinfo['location']['name'];
        echo "<br/>Image : <img src='https://graph.facebook.com/".$userinfo['id']."/picture' >";
        echo "<br/><br/><br/>Similarly we can get lot more information about user like work experience, dob etc more details would be shared later /We use this data to prefill registration form for user. ";
        echo "<br/><br/>Below is dump of entire array which shows all available data it carries<br/><br/>";
            echo '<pre>';
            var_dump($userinfo); 
            echo '</pre>';
        //Similarly we can get lot more information about user like work experience, dob etc more details would be shared later
        //We use this data to prefill registration form for user.

    } catch (FacebookApiException $e) {
         // Display Facebook login button - Requires Facebook JavaScript SDK (Below)
         echo '<fb:login-button show-faces="true" width="200" scope="email,user_photos"></fb:login-button>'."\n";
         $user = NULL;
     }
} else {
 // No user logged in currently Display Facebook login button - Requires Facebook JavaScript SDK (Below)
 echo '<fb:login-button show-faces="false" width="200" scope="email,user_photos"></fb:login-button>'."\n";
}
?>
<!--Below code is required to use FAcebook Javascript SDK/Library, Before this we have been using Facbeook PHP-SDK/Library --> 
<div id="fb-root"></div> <!-- A div element with id "fb-root" is required. Facebook JS SDK will auto create this element if it doesn't exist , But we will anyways create it-->
<script>
// window.fbAsyncInit will execute code within it asynchronously i.e without affecting the load time.
window.fbAsyncInit = function () {
//Below code Initializes Javacript SDK, appid is same as one defined in fbaccess.php
 FB.init({
 appId : '<?=$app_id?>',
 cookie : true,
 xfbml : true,
 oauth : true
 });

//Below code tells the script to refresh whenever user logins or logouts. 
 FB.Event.subscribe('auth.login', function (response) { window.location.reload(); });
 FB.Event.subscribe('auth.logout', function (response) { window.location.reload(); });
};

// Copy paste code to load the Facebook JavaScript SDK into the page
(function(){var e=document.createElement('script');e.async=true;e.src=document.location.protocol+'//connect.facebook.net/en_US/all.js';document.getElementById('fb-root').appendChild(e);}());
</script>
</body>
</html>

In Javascript können Sie eine Funktion wie diese aufrufen:

function login(){
    FB.getLoginStatus(function(response) {
        if (response.authResponse) {                                    
                alert(response.authResponse.userID);
                //Authenticated user.
        } else {
        // Unauthenticated user display authentication popup
        FB.login(function(response) {
            if (response.authResponse) { 
                    alert(response.authResponse.userID);
                    //User authenticated.
                } 
            else{                                           
                    alert("Please allow authentication to proceed!!");
                }
            }, {scope:'email'});
        }
    });
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X