2017-04-02 65 views
0

我們的網站有FB登錄,使用Katana項目的庫實現。配置FB身份驗證時,我將所需的權限字段設置爲最小(電子郵件,名字,姓氏)。這是我們網站的標準賬戶註冊,並且工作正常。c#mvc 5,facebook登錄 - 如何在初始登錄後詢問額外的用戶信息

但是,我們在網站中有第二種類型的用戶,他們的帳戶需要更多來自Facebook的數據,與他們的Facebook頁面相關,如封面圖片,用戶帖子,頁面描述等。如果用戶決定改變他的帳戶類型爲第二個,我們想從facebook獲取更多信息。

我可以以某種方式觸發具有不同權限字段集的重新授權FB彈出窗口嗎?此時用戶使用FB登錄,我們只需要更多的權限,就像使用不同的FacebookAuthenticationOptions配置重新登錄一樣。

回答

0

對於仍在尋找的人,我通過使用Facebook JavaScript API重新登錄不同的權限集解決了我的問題。您可以初始化FB Api以允許後續交互:

 window.fbAsyncInit = function() { 
     FB.init({ 
      appId: '[APP_ID_HERE]', 
      autoLogAppEvents: true, 
      xfbml: true, 
      version: 'v2.9', 
      status: true, 
      cookie: true, 
      oauth: true 
     }); 
     FB.AppEvents.logPageView(); 
    }; 

    (function (d, s, id) { 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) { return; } 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.net/en_US/sdk.js"; 
     fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

請注意狀態,cookie和oauth參數。不確定是否需要所有內容,但是當您使用額外權限重新登錄時,它們將使瀏覽器存儲授權令牌,然後您可以通過FB圖形API輕鬆獲取數據。通過這種方式,我得到了一個包含我需要的所有數據的json對象,然後通過ajax請求將該json發佈到我的網站。這就是Facebook數據如何進入我的應用程序。

如果有人有更好的解決方案,我會很高興看到它。

相關問題