如何在 C# 中从 Facebook SDK 获取当前用户访问令牌?不是应用访问令牌
Posted
技术标签:
【中文标题】如何在 C# 中从 Facebook SDK 获取当前用户访问令牌?不是应用访问令牌【英文标题】:How to get current user access token from Facebook SDK in C#? Not the App access token 【发布时间】:2018-11-20 09:58:54 【问题描述】:下面的代码展示了获取App Access Token,
public static string GetAppAccessToken()
var fb = new FacebookClient();
dynamic result = fb.Get("oauth/access_token", new
client_id = "****************",
client_secret = "*******************",
grant_type = "client_credentials"
);
return result.access_token;
但是如何使用 Facebook SDK 使用 C# 获取 当前登录用户的访问令牌?
【问题讨论】:
你为什么要那个?我希望这是在用户和 facebook 之间。为什么你会担心? 这样我就可以使用该访问令牌来获取当前登录用户的信息... 用户是否允许您这样做? @Adyson 正在尝试使用 c# 将内容发布到 facebook,以便如果我从 facebook SDK 获取用户访问令牌,我可以轻松发布内容... 如果你想获取email
,name
,id
,pictureurl
,你不需要获取用户访问令牌。应用访问令牌就足够了
【参考方案1】:
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Script.Serialization;
using System.Web.UI;
using System.Web.UI.WebControls;
using Facebook;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
public class AccessUser
public string access_token get; set;
public string token_type get; set;
public string expires_in get; set;
private void CheckAuthorization()
string app_id = "**************";
string app_secret = "************************";
if (Request["code"] == null)
var redirectUrl = string.Format("https://graph.facebook.com/oauth/authorize?client_id=0&redirect_uri=1", app_id, Request.Url.AbsoluteUri);
Response.Redirect(redirectUrl);
else
AccessUser au = new AccessUser();
string url = string.Format("https://graph.facebook.com/v3.2/oauth/access_token?client_id=0&redirect_uri=1&client_secret=2&code=3", app_id, Request.Url.AbsoluteUri, app_secret, Request["code"].ToString());
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
StreamReader reader = new StreamReader(response.GetResponseStream());
string vals = reader.ReadToEnd();
au = JsonConvert.DeserializeObject<AccessUser>(vals);
string token = au.access_token;
以上代码将返回用户令牌。
注意:使用 aspx 页面构建,这是基于 V3.2 Graph API 调用。像 1 和 2 这样的版本,我们需要在 URI 中发送 Scope。
如果有人需要源代码,请告诉我...
【讨论】:
@GertArnold 完成。以上是关于如何在 C# 中从 Facebook SDK 获取当前用户访问令牌?不是应用访问令牌的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.Net MVC 应用程序中从 Facebook SDK for .Net 获取 Facebook 用户访问令牌
如何在 ios 中从 facebook 获取朋友的最新状态?