Graph API Explorer 会生成一个长度通常为 118 个字符的访问令牌,而 FacebookOAuthClient().GetApplicationAccessToken() 返回的令牌要少得多,即使选择了某些扩展属性,执行 FQL 等操作的权限也更少。
谁能解释我如何使用 FB C# SDK 获取类似于 Graph API Explorer 令牌的令牌?
Graph API Explorer 会生成一个长度通常为 118 个字符的访问令牌,而 FacebookOAuthClient().GetApplicationAccessToken() 返回的令牌要少得多,即使选择了某些扩展属性,执行 FQL 等操作的权限也更少。
谁能解释我如何使用 FB C# SDK 获取类似于 Graph API Explorer 令牌的令牌?
根据 C# SDK 的最新文档,他们建议使用 Facebook JavaScript SDK 使用 getLoginStatus() 或 login() 获取令牌。然后通过 AJAX 通过 https 将该访问令牌发送回服务器,以便 C# 代码处理并存储在会话(或其他数据存储)中。
<?php
$app_id = "YOUR_APP_ID";
$app_secret = "YOUR_APP_SECRET";
$post_login_url = "http://YOUR_URL/THIS_FILE.php";
//Obtain the access_token with publish_stream permission
if(empty($_REQUEST['code'])){
$dialog_url= "http://www.facebook.com/dialog/oauth?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode( $post_login_url)
. "&scope=publish_stream";
echo("<script>top.location.href='" . $dialog_url
. "'</script>");
}
else {
$code = $_REQUEST['code'];
$token_url="https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode( $post_login_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$access_token = $params['access_token'];
setcookie("FBCode", $access_token);
}
?>
对我来说是可行的解决方案。我将我的 access_token 保存在 cookie 中并在我的 Silverlight 5 In-Browser App 中解析它。