Я хочу создать счет для своего приложения 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) и фактически то же самое, что вы получаете, позвонив
APPLICATION_ID|lvATVyhp1m.............w
https://graph.facebook.com/oauth/access_token?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=client_credentials напрямую.
https://graph.facebook.com/oauth/access_token?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=client_credentials
Так почему этот вызов должен быть сделан через PHP?
Токен можно получить разными способами
<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();