【发布时间】:2011-12-03 01:24:43
【问题描述】:
我已经搜索了至少 10000 个访问令牌问题,但没有找到解决问题的方法。我正在使用 facebook sdk 进行身份验证,但是当我尝试简单的 .Get on “me”时,它会出现以下错误:“(OAuthException)必须使用活动访问令牌来查询有关当前用户的信息。”我正在使用 .NET 3.5 框架,所以我不能使用“动态”。当我在“我”的位置替换一个有效的 ID 时,它会起作用并显示名称。当我尝试发布到提要时,我得到“(OAuthException)(#200)用户尚未授权应用程序执行此操作。” 任何帮助都会很棒。 谢谢。
这是我的代码:
var webRequest = (HttpWebRequest)HttpWebRequest.Create("https://graph.facebook.com/oauth/access_token");
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
var requestString = "client_id=[appid]&client_secret=[secret]&redirect_uri=http%3A%2F%2Fwww.website.com&grant_type=client_credentials&scope=publish_stream,read_stream,offline_access";
byte[] bytedata = Encoding.UTF8.GetBytes(requestString);
webRequest.ContentLength = bytedata.Length;
var requestStream = webRequest.GetRequestStream();
requestStream.Write(bytedata, 0, bytedata.Length);
requestStream.Close();
var response = webRequest.GetResponse();
var responseStream = new StreamReader(response.GetResponseStream());
var responseString = responseStream.ReadToEnd();
responseStream.Close();
response.Close();
if (!String.IsNullOrEmpty(responseString))
{
var accessToken = responseString.Replace("access_token=", "");
var fb = new FacebookWebClient(accessToken.ToString());
var me = fb.Get<FBUser>("100000219214008");
string firstName = me.name;
var postparameters = new Dictionary<string, object>();
postparameters["message"] = "Hello world!";
postparameters["name"] = "This is a name";
postparameters["link"] = "http://thisisalink.com";
postparameters["description"] = "This is a description";
var result = fb.Post("/100000219214008/feed", postparameters);
Response.Write (firstName.ToString());
}
【问题讨论】:
-
关于 facebook WEBFORM 问题,似乎没有多少人以这种方式使用它。这种方法的文档方式几乎没有。所有示例都集中在 Winforms 或 MVC 上。 MVC 太臃肿了,我不明白为什么有人会想要使用它,除非他们喜欢 MVC 复杂的工作方式。我工作的一家广告公司在一个项目上花费了 75 万美元,并与一个由 10 名开发人员组成的团队 [外包] 了超过 6 个月,该项目就像 80 兆!我在 30 分钟内使用一个简单的 Web 表单和模板重新编写了该网站 - 整个项目 350 千字节。
-
Anyways.. 似乎需要 facebook sdk c# 提供有关 Web 表单的支持,因为我无法想象有人将 MVC 用于一页。想法?
标签: c# facebook-c#-sdk oauth-2.0