我有一个在 asp.net mvc 上编写的 Facebook 画布应用程序。我看不到脸书上发生了什么。
我有加载 FB 用户图片的客户端代码:
FB.api('/' + userId, { fields: "id,link,name,picture" }, function (user) {
$('img[data-fb-user-img]', subjectVoterElement).attr(' src', user.picture.data.url);
});
有一天它会在 user.picture 中响应图片 url,另一天在 user.picture.data.url 中响应,所以我不时会出错。为什么FB给出不同的响应结构?
2.
要在我的应用程序中授权 FB 用户,我使用 facebook cookie 发送到我的应用程序服务器。然后我从中提取值,然后使用 ParseSignedRequest 方法解析值并将获得的代码交换为令牌。
HttpCookie fbCookie = filterContext.RequestContext.HttpContext.Request.Cookies[ String.Format("fbsr_{0}", System.Configuration.ConfigurationManager.AppSettings["FB_Id"])];
字符串代码 = ((动态) FacebookService.FacebookService.Client.ParseSignedRequest(fbCookie.Value)).code;
using (var webClient = new WebClient())
{
var result = webClient.DownloadString(
String.Format(
"https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri=&client_secret={1}&code={2}",
FacebookService.FacebookService.Client.AppId,
FacebookService.FacebookService.Client.AppSecret,
code
)
);
有时我收到授权错误,提示代码已过期或指定用户已从 Facebook 注销。事实上,我在一小时前注销了,从那一刻起,这已经成功了。此外,facebook cookie 的过期时间设置得足够长,还没有到来。
有没有人有同样的问题?谢谢