Как получить фейсбук app_access_token? - PullRequest
0 голосов
/ 01 марта 2012

Я хочу создать счет для своего приложения Facebook, и я знаю, что для этого вам нужен app_access_token. В некоторых сообщениях говорится, что единственный способ получить app_access_token - через PHP, например:

    <?php

$APPLICATION_ID = YOUR_APP_ID;
$APPLICATION_SECRET = YOUR_APP_SECRET;

$token_url =    "https://graph.facebook.com/oauth/access_token?" .
            "client_id=" . $APPLICATION_ID .
            "&client_secret=" . $APPLICATION_SECRET .
            "&grant_type=client_credentials";
$app_token = file_get_contents($token_url);

?>

Отличается ли токен, полученный с помощью этого PHP-скрипта, от так называемого "токена приложения", который вы найдете на

https://developers.facebook.com/tools/access_token/?

(выглядит так: APPLICATION_ID|lvATVyhp1m.............w) и фактически то же самое, что вы получаете, позвонив

https://graph.facebook.com/oauth/access_token?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=client_credentials напрямую.

Так почему этот вызов должен быть сделан через PHP?

1 Ответ

1 голос
/ 01 марта 2012

Токен можно получить разными способами

<a href='https://www.facebook.com/dialog/oauth?client_id=2926561407xxxxx&redirect_uri=http://localhost:8080/fb/getCode.html&rcount=1&scope=email,read_stream'>Login</a>

Он вернет токен через URL, который вы можете получить по:

function getURLParameters(access_token) 
{
    var sURL = window.document.URL.toString();
    if (sURL.indexOf("?") > 0)
    {
    var arrParams = sURL.split("?"); 
    var arrURLParams = arrParams[1].split("&"); 
    var arrParamNames = new Array(arrURLParams.length);
        var arrParamValues = new Array(arrURLParams.length);     
        var i = 0;

        for (i=0;i<arrURLParams.length;i++)
        {
            var sParam =  arrURLParams[i].split("=");
            arrParamNames[i] = sParam[0];

            if (sParam[1] != "")
              arrParamValues[i] = unescape(sParam[1]);
            else
              arrParamValues[i] = "No Value";
        }

        for (i=0;i<arrURLParams.length;i++)
        {
          if(arrParamNames[i] == "code")
          {
            code = arrParamValues[i];
            return arrParamValues[i];
          }
        }

        return "No Parameters Found";
    }
}
getURLParameters();
...