2011-11-21 188 views
0

我有一個要求,我只想使用API​​access token使用API​​。
我見過使用Web請求和響應來獲取Facebook API的方法,他們也使用重定向URI。Facebook API獲取訪問令牌

但我真的不能使用重定向URI,因爲我想在一個天藍色的輔助角色中使用它。

喜歡的東西:

facebook a=new facebook(); 
a.appid=""; 

這僅僅是一個可視化的,但任何幫助將是巨大的。

編輯:

下面的答案有幫助。 如果我在瀏覽器中使用以下URI https://graph.facebook.com/oauth/access_token?client_id=app_Id&client_secret=secret_key&grant_type=client_credentials

它顯示的access_token = ### 但如果使用下面的代碼做同樣在.NET 字符串URL =「https://graph.facebook.com/ oauth/access_token?client_id = app_id & client_secret = secretKey & grant_type = client_credentials「;

string token; 
WebRequest request = WebRequest.Create(url); 
WebResponse response = request.GetResponse(); 

它拋出未經授權

+0

請盡力與適當的標點符號寫 - 這使得問題更容易理解。 –

+0

你究竟想知道什麼?我想獲取訪問令牌並以azure工作角色發佈到fb粉絲頁面。在那裏我不能使用正常的請求響應模型來獲取訪問令牌,因爲它需要重定向uri,這對於我的需求來說並不存在。 –

+0

在某些時候,您的用戶必須接受您的應用,原因很明顯。 – TJHeuvel

回答

1

如果C#API沒有提供方法,你可以自己做。訪問令牌是以下url的內容。你只需要提出https請求。

https://graph.facebook.com/oauth/access_token?client_id=<APP_ID>&client_secret=<APP_SECRET>&grant_type=client_credentials 

OK,所以這裏是工作的PHP代碼:

function getAccessToken(){ 
    $token_url = 'https://graph.facebook.com/oauth/access_token?client_id='.APP_ID.'&client_secret='.APP_SECRET.'&grant_type=client_credentials'; 
    return makeRequest($token_url); 
} 

function makeRequest($url, $timeout = 5) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_USERAGENT, "PHP_APP"); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_ENCODING, ""); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); # required for https urls 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10); 
    $content = curl_exec($ch); 
    $response = curl_getinfo($ch); 
    curl_close ($ch); 

    if($response['http_code'] == 200) return $content; 
    return FALSE; 
} 
+0

這種方法需要創建網址並重定向它,然後登錄到Facebook nd然後你得到訪問令牌..我不能這樣做。 –

+0

它不需要登錄Facebook,也不需要重定向。我成功地使用它從PHP使用CURL –

+0

你可以請示例code.it會很好。 –