Facebook API для получения токена доступа - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть требование, когда я хочу использовать токен Facebookaccess, используя только API.
Я видел методы, которые работают с использованием веб-запросов и ответов для получения API Facebook, и они также используют URI перенаправления.

Но я не могу использовать URI перенаправления, так как хочу использовать его в рабочей роли Azure.

Что-то вроде:

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

Это просто визуализация, но любая помощь будет великолепна.

EDIT:

Ниже поможет ответ. и если я использую следующие 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();

он выбрасывает несанкционированный

1 Ответ

1 голос
/ 21 ноября 2011

Если C # API не предоставляет метод для этого, вы можете сделать это самостоятельно.Токен доступа - это содержимое следующего URL.Вам просто нужно сделать запрос https.

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

ОК, так что здесь работает код 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;
}
...