Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取facebook应用程序访问令牌?_Facebook_Oauth_Facebook Access Token - Fatal编程技术网

如何获取facebook应用程序访问令牌?

如何获取facebook应用程序访问令牌?,facebook,oauth,facebook-access-token,Facebook,Oauth,Facebook Access Token,我想为我的Facebook应用程序创建一个分数,我知道你需要一个应用程序访问令牌。一些帖子说,获取app_access_令牌的唯一方法是通过PHP,如下所示: <?php $APPLICATION_ID = YOUR_APP_ID; $APPLICATION_SECRET = YOUR_APP_SECRET; $token_url = "https://graph.facebook.com/oauth/access_token?" . "clien

我想为我的Facebook应用程序创建一个分数,我知道你需要一个应用程序访问令牌。一些帖子说,获取app_access_令牌的唯一方法是通过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脚本获得的令牌与您在上找到的所谓“应用令牌”不同吗

?

(看起来是这样的:
应用程序ID | lvATVyhp1m………..w
) 和你打电话得到的完全一样

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();
函数getURLParameters(访问令牌)
{
var sURL=window.document.URL.toString();
if(sURL.indexOf(“?”)大于0)
{
var arrParams=剩余分割(“?”);
var arrrurlparams=arrParams[1]。拆分(“&”);
var arrParamNames=新数组(arrrurlparms.length);
var arrParamValues=新数组(arrrurlparms.length);
var i=0;

对于(i=0;i访问令牌是相同的。那些说使用该PHP脚本发出请求并检索应用访问令牌的网站是不正确的。我猜他们所说的“获取应用访问令牌的唯一方法是通过PHP”的意思是,你应该从服务器端获取它。这是因为请求需要你的应用机密,并且应该对其保密伊瓦特。