2012-12-06 61 views
3

我一直在使用Facebook附加軟件開發應用程序,以使Facebook用戶能夠登錄並訪問應用程序以訪問個人資料圖片等詳細信息。MVC App不再通過Facebook登錄

昨天該應用程序運行良好,我的開發工作正常進行。

今天早上我試圖登錄來檢查我得到了多少,並且遇到Access令牌錯誤消息。

個別部分視圖會加載好,但整個網站不會。在進一步的調查中,我發現登錄屏幕正在分配一個新的訪問令牌,但是當該站點嘗試啓動主頁面時,令牌爲空。我的日誌中

如下: -

<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)必須使用活動訪問令牌來查詢有關當前用戶的信息。

希望這是足夠的信息供人找到解決方案。

非常感謝

回答

0

我知道這是一個有點老,但是這可能會幫助別人。最終找到答案。這是在控制器,我需要以下內容: -

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

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

這得到了一個活躍的令牌,讓我再次訪問信息。

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你從哪裏得到你的應用ID .....

+0

試過這個,但不幸的是它對結果沒有任何影響。仍然收到相同的錯誤消息。 –

0

好吧,發現一些信息表明,在12月初發布的Facebook SDK所做的更改將會是導致我遇到的問題的原因。在給出的建議中,我在我的項目中的Facebook參考上運行了參考更新。這已從Web.config中刪除了facebookSettings行,並且現在在警告框中出現了六次以下錯誤消息。

參考爲類型 'Facebook.IFacebookApplication' 聲稱它是在定義 '\包\ Facebook.6.1.4 \ lib中\ net40客戶端\ Facebook.dll',但它 無法 發現\包\ FacebookWeb.5.4.1.0 \ LIB \ net40 \ Facebook.Web.dll中

和下面的錯誤是在試圖運行程序

異常詳細信息生產:System.TypeLoadException:無法負載類型 'Facebook.FacebookApplication'from assembly'Facebook, Version = 6.0.10.0,Culture = neutral,PublicKeyToken = 58cb4f2111d1e6de'。

Source Error: 


Line 12:  public class HomeController : Controller 
Line 13:  { 
Line 14:   FacebookWebContext FBWebContext = new FacebookWebContext(); 
Line 15:   FacebookWebClient FBWebClient = new FacebookWebClient(); 
Line 16: