[英]Fetch Facebook user profile details with profile picture and Logout properties using Facebook C# SDK
我想使用Facebook c#SDK获取带有个人资料图片的用户详细信息。我已经进行了一些编码,并且能够在我的应用程序中使用Facebook登录。
ImmediateHelp.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.Params["code"] != null)
{
//Facebook.FacebookAPI api = new Facebook.FacebookAPI();
FacebookClient client = new Facebook.FacebookClient(GetAccessToken());
object me = client.Get("/me");
lblTextImage.ImageUrl="need picture here" ;
lblTextEmail.Text="need email here";
// JSONObject meFriends = client.Get("/me/friends");
}
}
}
private string GetAccessToken()
{
if (HttpRuntime.Cache["access_token"] == null)
{
Dictionary<string, string> args = GetOauthTokens(Request.Params["code"]);
HttpRuntime.Cache.Insert("access_token", args["access_token"], null, DateTime.Now.AddMinutes(Convert.ToDouble(args["expires"])), TimeSpan.Zero);
}
return HttpRuntime.Cache["access_token"].ToString();
}
private Dictionary<string, string> GetOauthTokens(string code)
{
Dictionary<string, string> tokens = new Dictionary<string, string>();
string clientId = "*************";
string redirectUrl = "http://localhost:3440/immediateHelp.aspx";
string clientSecret = "************************";
string scope = "user_photos,email";
string url = string.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}&scope={4}",
clientId, redirectUrl, clientSecret, code, scope);
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string retVal = reader.ReadToEnd();
foreach (string token in retVal.Split('&'))
{
tokens.Add(token.Substring(0, token.IndexOf("=")),
token.Substring(token.IndexOf("=") + 1, token.Length - token.IndexOf("=") - 1));
}
}
return tokens;
}
登录后,我需要在图像字段中附加图像,并在文本框中添加电子邮件。我还需要使用Facebook c#SDK使用注销会话注销属性。请帮助我解决此问题。
以下代码将帮助您获取电子邮件和个人资料图片。 代码client.Get(“ / me?fields = picture”))以Json格式返回图片,因此我们需要将URL提取为代码show:
FacebookClient client = new FacebookClient(access_token);
dynamic myInfo = fb.Get("/me?fields=email");
var picture = (((JsonObject)(JsonObject)client.Get("/me?fields=picture"))["picture"]);
var url = (string)(((JsonObject)(((JsonObject)picture)["data"]))["url"]);
lblTextImage.ImageUrl=url;
lblTextEmail.Text=myInfo.email;
希望您能完成这项工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.