Graph API エクスプローラーは、通常 118 文字の長さのアクセス トークンを生成しますが、FacebookOAuthClient().GetApplicationAccessToken() によって返されるトークンははるかに少なく、特定の拡張属性が選択されていても FQL を実行するなどの権限はほとんどありません。
FB C# SDK を使用して、Graph API Explorer トークンに似たトークンを取得する方法を誰か説明できますか?
Graph API エクスプローラーは、通常 118 文字の長さのアクセス トークンを生成しますが、FacebookOAuthClient().GetApplicationAccessToken() によって返されるトークンははるかに少なく、特定の拡張属性が選択されていても FQL を実行するなどの権限はほとんどありません。
FB C# SDK を使用して、Graph API Explorer トークンに似たトークンを取得する方法を誰か説明できますか?
C# SDK の最新のドキュメントによると、getLoginStatus() または login() を使用して Facebook JavaScript SDK を使用してトークンを取得することを推奨しています。次に、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 アプリで解析します。