web-dev-qa-db-fra.com

essayer d'obtenir un jeton d'accès à l'application

J'ai essayé d'obtenir un jeton d'accès à l'application pour mon application facebook avec ce code:

APP_ACCESS_TOKEN = FB.api(
    "oauth/access_token",
    {client_id: APP_ID, client_secret: APP_SECRET_CODE, redirect_uri: uri},
    function(response){
    console.log(response);
});

qui devrait être comme:

GET https://graph.facebook.com/oauth/access_token?
        client_id=YOUR_APP_ID
       &client_secret=YOUR_APP_SECRET
       &redirect_uri=uri

mais je reçois une erreur:

code: 1
message: "Missing authorization code"
type: "OAuthException"

Quel est le code d'autorisation et comment puis-je l'obtenir?

42
Franz Deschler

Obtention d'un jeton d'accès à l'application

Pour obtenir un jeton d'accès aux applications, appelez la requête HTTP GET suivante:

GET https://graph.facebook.com/oauth/access_token?
            client_id=YOUR_APP_ID
           &client_secret=YOUR_APP_SECRET
           &grant_type=client_credentials

L'API répondra avec une chaîne de requête au format de la forme:

access_token=YOUR_APP_ID|YOUR_APP_ACCESS_TOKEN

Référence: http://developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/

65
Avantaj Tvm

https://developers.facebook.com/docs/howtos/login/login-as-app/ :

«Parce que vous devez inclure votre secret d'application, vous ne devez pas tenter de passer cet appel côté client car cela exposerait ce secret à tous vos utilisateurs. Il est important que votre secret d'application ne soit jamais partagé avec qui que ce soit. . Pour cette raison, cet appel doit être effectué côté serveur ” _

Et pour le jeton d’accès à l’application, c’est la même chose - vous ne devriez jamais utiliser le côté client, car chaque utilisateur pourrait le repérer à cet endroit puis commencer à l’utiliser pour effectuer des actions au nom de votre application des paramètres de votre application).

Si vous avez une partie serveur dans votre application, vous pouvez simplement "créer" vous-même le jeton d'accès à l'application, en concaténant l'identifiant et le secret de l'application avec un symbole de canal, app_id|app_secret.

46
CBroe

vérifie si les utilisateurs du fichier node.js ou de JAVASCRIPT.

getLongLiveToken: function(data){
    FB.api('oauth/access_token', {
        client_id: data.client_id, // FB_APP_ID
        client_secret: data.secret, // FB_APP_SECRET
        grant_type: 'fb_exchange_token',
        fb_exchange_token: data.access_token // USER_TOKEN
    }, function (res) {
        if (!res || res.error) {
            console.log(!res ? 'error occurred' : res.error);
        } else {
            var accessToken = res.access_token;
            if(typeof accessToken != 'undefined'){}
        }
    });
}
1
ankur

Vous pouvez également utiliser ce noeud final POST sans générer le jeton. Assurez-vous simplement qu'il est appelé depuis le serveur, pas côté client, où le secret d'application est exposé au public:

https://graph.facebook.com/?id={url}&scrape=true&access_token={app_id}|{app_secret}
0
jasan

Je ne suis pas sûr qu'exposer le secret du client APP dans le code soit une bonne idée. Vous pouvez utiliser le jeton APP de l'outil Facebook "Access Token Tool". Copiez simplement le jeton dans votre code pour toute utilisation. Https: // développeurs .facebook.com/tools-and-support/

0
kimo