0

我有一个在 asp.net mvc 上编写的 Facebook 画布应用程序。我看不到脸书上发生了什么。

  1. 我有加载 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 的过期时间设置得足够长,还没有到来。
有没有人有同样的问题?谢谢

4

1 回答 1

0

我不确定这是否是#1 的问题,但我遇到了问题,所以我会把它扔在那里。实际上至少有两种不同类型的 facebook 用户(可能更多):

  1. 拥有像你我这样的帐户的普通 Facebook 用户
  2. 刚刚为 Facebook 页面设置的帐户

如何创建仅用于页面的 facebook 帐户?

  • 第 1 步:注销您的 Facebook 帐户
  • 第 2 步:去这里: http: //www.facebook.com/pages/create.php
  • 第 3 步:为虚假业务或您要测试的任何类型的页面设置页面
  • 第 4 步:选择我没有 facebook 帐户并使用新的电子邮件地址创建一个帐户

现在用你的普通用户和这个只有 facebook 页面的用户来试试你的应用程序。就像我说的,我不确定这是否是您的问题,但我在 Facebook 页面仅帐户方面遇到了许多其他问题,因此值得一试。

于 2012-07-11T11:49:54.583 回答