7
votes

Comment utiliser fb.api ('/ moi / image') pour obtenir une image du profil

C'est une question très stupide. Je suis un débutant avec Facebook JavaScript SDK. Donc, j'essaie de faire une image de profil de l'utilisateur à montrer J'ai utilisé ce code xxx

qui a fonctionné bien, mais j'essaie de comprendre comment utiliser fb.api ('/ moi / photo') pour montrer le image.


0 commentaires

5 Réponses :


0
votes

fb.api ('/ moi / image') retournera un Rediriger à l'URL de l'image, il ne sera donc pas utile pour vous:
text alt
La façon dont vous utilisez est valable comme mentionné dans le Documentation (section de lecture). Peut-être que Ce est lié mais je ne sais pas si c'est totalement valide ou pas.


2 commentaires

C'est intéressant. Je me demande quelle est l'utilisation pour fb.api (moi / image ')? Merci beaucoup pour répondre


@ user573451: Eh bien, je suppose que l'API existe à des fins du côté serveur $ Facebook-> API ('/ ME / PICTUT'); , comme sauver l'image brute (peut-être?) ou quelque chose .Mais aussi loin que le côté client est votre préoccupation, je ne pense aucune utilisation pour cela et vous utilisez déjà la bonne voie. :-)



15
votes

/ me / image code> (ou / {ID utilisateur} / image code>) renvoie un redirection http 301 à l'emplacement de l'image afin que vous puissiez l'intégrer directement à un

Si vous souhaitez extraire l'URL et utilisez-la vous-même, vous devez le demander spécifiquement comme champ, via: p>

 /me/?fields=picture


5 commentaires

/ moi / image renvoie une URL (ou un objet)? Vous avez dit que vous pouvez l'intégrer directement dans un aussi, alors quelle est la différence entre / moi / image et `/ {id d'utilisateur}? Champs = image `?


/ moi / image renvoie un redirection http 301 à l'image, ? champs = image retourne l'URL comme champ de la réponse JSON


Besoin de? C'est une caractéristique de l'API pour prendre en charge l'utilisation de la réponse de l'API directement dans une balise - la plupart des gens ne le feront probablement pas et vont chercher les URL de l'image et les utiliser directement


@LGY: Je sais que cela a été un moment. Je me demande si vous pouvez me montrer un exemple comment utiliser "/ moi /? Champs = image". Merci.


Prenez l'URL de la réponse et mettez-la directement dans une balise IMG directement - les étapes exactes nécessaires pour que cela dépendent beaucoup de la manière dont votre application fonctionne et quelle langue vous utilisez - vous pouvez voir le format de réponse en effectuant des appels d'API en utilisant le graphique API Explorer Tool ICI: développeurs.facebook.com/Tools/Explorer



9
votes

Vous pouvez également obtenir des tailles spécifiques de la photo de profil:

FB.api("/me/picture?width=180&height=180",  function(response) {

        console.log(response.data.url);

});  


1 commentaires

Type est pratique si vous ne voulez pas avoir à spécifier une taille précise et que vous voulez juste une valeur floue comme petite, normale, grande: développeurs.facebook.com/tools/...



1
votes

Ceci est un coup sûr, prouvé travailler avec Facebook Graph API 2.5. Ceci est l'exemple de HTML, veuillez consulter les modifications que j'ai fabriquées dans FB.API ().

 <!DOCTYPE html>
    <html>
    <head>
    <title>Facebook Login JavaScript Example</title>
    <meta charset="UTF-8">
    </head>
    <body>

    <!--
      Below we include the Login Button social plugin. This button uses
      the JavaScript SDK to present a graphical Login button that triggers
      the FB.login() function when clicked.
    -->
    <img src="" id="profileImage"/>

    <div id="status">
    </div>

    </body>
    <script>

        // This is called with the results from from FB.getLoginStatus().
        function statusChangeCallback(response) {
            console.log('statusChangeCallback');
            console.log(response);
            // The response object is returned with a status field that lets the
            // app know the current login status of the person.
            // Full docs on the response object can be found in the documentation
            // for FB.getLoginStatus().
            if (response.status === 'connected') {
                // Logged into your app and Facebook.
                testAPI();
            } else if (response.status === 'not_authorized') {
                // The person is logged into Facebook, but not your app.
                document.getElementById('status').innerHTML = 'Please log ' +
                        'into this app.';
            } else {
                // The person is not logged into Facebook, so we're not sure if
                // they are logged into this app or not.
                document.getElementById('status').innerHTML = 'Please log ' +
                        'into Facebook.';
            }
        }

        // This function is called when someone finishes with the Login
        // Button.  See the onlogin handler attached to it in the sample
        // code below.
        function checkLoginState() {
            FB.getLoginStatus(function(response) {
                statusChangeCallback(response);
            });
        }

        window.fbAsyncInit = function() {
            FB.init({
                appId      : 'XXXXXXXXXXXX',
                cookie     : true,  // enable cookies to allow the server to access
                                    // the session
                xfbml      : true,  // parse social plugins on this page
                version    : 'v2.5' // use graph api version 2.5
            });

            // Now that we've initialized the JavaScript SDK, we call
            //FB.getLoginStatus().  This function gets the state of the
            // person visiting this page and can return one of three states to
            // the callback you provide.  They can be:
            //
            // 1. Logged into your app ('connected')
            // 2. Logged into Facebook, but not your app ('not_authorized')
            // 3. Not logged into Facebook and can't tell if they are logged into
            //    your app or not.
            //
            // These three cases are handled in the callback function.

            FB.getLoginStatus(function(response) {
                statusChangeCallback(response);
            });

        };

        // Load the SDK asynchronously
        (function(d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) return;
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/en_US/sdk.js";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));

        // Here we run a very simple test of the Graph API after login is
        // successful.  See statusChangeCallback() for when this call is made.
        function testAPI() {
            console.log('Welcome!  Fetching your information.... ');
            FB.api('/me', function(response) {
                console.log('Successful login for: ' + response.name);
                console.log('Successful login for: ' + response.id);
                console.log('Successful login for: ' + response.email);
                var im = document.getElementById("profileImage").setAttribute("src", "http://graph.facebook.com/" + response.id + "/picture?type=normal");
                document.getElementById('username').innerHTML =response.name;
            });
        }

    </script>
    </html>


0 commentaires

1
votes

Je reçois la photo de profil Facebook Toutes les tailles

Tailles de la photo de profil

valeur = 24 32 40 50 60 74 80 86 100 111 120 130 148 160 200 240 320 480 720 960 1440

CURL xxx


0 commentaires