2012-03-01 23 views
0

我想爲我的Facebook應用創建一個分數,我知道你需要一個app_access_token。有些帖子說,要得到一個app_access_token的唯一方法是通過PHP,像這樣:如何獲取facebook app_access_token?

<?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) 是acually您直接致電

https://graph.facebook.com/oauth/access_token?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=client_credentials得到相同的。

那麼爲什麼必須通過PHP進行此調用?

+0

的訪問令牌是相同的。使用該PHP腳本發出請求並檢索應用程序訪問令牌的網站不正確。 – 2012-03-01 09:11:22

+1

我猜他們'通過PHP獲取app_access_token的唯一方法'是什麼意思,你應該得到它的服務器端。這是因爲該請求需要您的應用程序保密,並且應該保密。 – 2012-03-01 14:30:06

回答

1

您可以通過各種方式

<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();