DotNetOpenAuthの例にあるFacebookGraphオブジェクトは、受け取っているフィールドの変更をサポートしていません。しかし、WebRequestからプロンプトが出されてJSON文字列が返されているので、自分で解析する(または別のJSONパーサを使用する)ことができます。あなたはWebRequestクラスURIの一部として送り返さするフィールド内容を指定
//as part of the uri for the webrequest, include all the fields you want to use
var request = WebRequest.Create("https://graph.facebook.com/me?fields=email,name&access_token=" + Uri.EscapeDataString(authorization.AccessToken));
using (var response = request.GetResponse())
{
using (var responseStream = response.GetResponseStream())
{
System.IO.StreamReader streamReader = new System.IO.StreamReader(responseStream, true);
string MyStr = streamReader.ReadToEnd();
JObject userInfo = JObject.Parse(MyStr);
//now you can access elements via:
// (string)userInfo["name"], userInfo["email"], userInfo["id"], etc.
}
}
注:それはNewtonSoft.Json.dllを使用して、私はまったく同じものです。利用可能なフィールドはhttps://developers.facebook.com/docs/reference/api/user/
まあ、実際にこれは私が他の情報を取得する方法である: VAR要求= WebRequest.Create( "https://graph.facebook.com/me?access_token=" + Uri.EscapeDataString(authorization.AccessToken )); var response = request.GetResponse(); var responseStream = response.GetResponseStream(); var graph = FacebookGraph.Deserialize(responseStream); その後、私は例えばIdでグラフを収集します。グラフには、私が見る限り、例えば電子メールは含まれていませんが。だから私の質問は、dotnetopenauthを使ってこれらのスコーププロパティを取得する最良の方法でした。 – Baserz
ああ、忘れてしまったように、フィールドパラメタで電子メールフィールドを指定する必要があります: 'http://graph.facebook.com/me?fields = email' – DMCS