Facebook API获取访问令牌

时间:2011-11-21 13:17:07

标签: c# facebook-c#-sdk

我有一个要求,我只想使用API​​来使用Facebookaccess令牌 我见过使用Web请求和响应来获取Facebook API的方法,它们也使用重定向URI。

但我真的不能使用重定向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中执行相同操作     string url =“https://graph.facebook.com/oauth/access_token?client_id=app_id &安培; client_secret =秘密密钥 &安培; grant_type = client_credentials“;

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

它会抛出未经授权的

1 个答案:

答案 0 :(得分:1)

如果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;
}