3

我一直在使用 Facebook 插件开发一个应用程序,以使 Facebook 用户能够登录,并且该应用程序可以访问个人资料图片等详细信息。

昨天该应用程序运行良好,我的开发继续正常进行。

今天早上我尝试登录以检查我已经走了多远,并遇到了访问令牌错误消息。

个别部分视图可以正常加载,但整个站点不会。在进一步调查中,我发现登录屏幕正在分配一个新的访问令牌,但是当站点尝试调出母版页时,该令牌为空。

我的登录如下:-

<html>
<head>
  <title>Log On</title>
</head>
<body>
  <div id="fb-root"></div>
  <script type="text/javascript">
    window.fbAsyncInit = function() {
      FB.init({
        appId      : '***app no***',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true
      });

      FB.Event.subscribe('auth.login', function () {
        window.location.reload();
      });
    };

    (function(d){
       var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = "//connect.facebook.net/en_US/all.js";
       d.getElementsByTagName('head')[0].appendChild(js);
     }(document));
  </script>
  <div class="fb-login-button" data-scope="email">
    Login with Facebook
  </div>
 </body>
 </html>

这让我头疼。

返回的错误是 (OAuthException) 必须使用活动访问令牌来查询有关当前用户的信息。

希望这是有人找到解决方案的足够信息。

非常感谢

4

3 回答 3

0

您尚未设置频道网址,即您的网站路径(可以是本地主机或服务器域)

<script type="text/javascript">
window.fbAsyncInit = function() {
  FB.init({
    appId      : '***app no***',
    channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File for x-domain communication
    status     : true, 
    cookie     : true,
    xfbml      : true,
    oauth      : true
  });

您还必须在 developer.facebook.com 中设置您的 url 路径,从那里获得您的 app-id .....

于 2012-12-12T01:45:25.293 回答
0

我知道这有点旧,但这可能对其他人有所帮助。最终找到了答案。在控制器中,我需要以下内容:-

var client = new FacebookClient(Session["FacebookToken"].ToString());    

dynamic me = client.Get("me");

这得到了一个活动令牌,允许我再次访问信息。

于 2013-06-18T15:24:17.650 回答
0

好的,发现一些信息表明在 12 月初对 Facebook SDK 所做的更改将导致我的问题。根据给出的建议,我在我的项目中对 Facebook 参考进行了参考更新。这已从 Web.config 中删除了 facebookSettings 行,并且以下错误消息现在在警告框中出现了六次。

对“Facebook.IFacebookApplication”类型的引用声称它在“\packages\Facebook.6.1.4\lib\net40-client\Facebook.dll”中定义,但在 \packages\FacebookWeb.5.4.1.0\lib 中找不到\net40\Facebook.Web.dll

并在尝试运行程序时产生以下错误

异常详细信息:System.TypeLoadException:无法从程序集“Facebook,版本=6.0.10.0,文化=中性,PublicKeyToken=58cb4f2111d1e6de”加载类型“Facebook.FacebookApplication”。

Source Error: 


Line 12:     public class HomeController : Controller
Line 13:     {
Line 14:         FacebookWebContext FBWebContext = new FacebookWebContext();
Line 15:         FacebookWebClient FBWebClient = new FacebookWebClient();
Line 16:
于 2012-12-12T14:29:52.177 回答