2013-12-23 145 views
0

在這裏,我試圖通過登錄認證用戶,之後,我想跳過權限對話框。但是我無法做到這一點,因爲它總是向用戶要求應用程序的權限。我的意圖是,如果用戶沒有登錄到Facebook,他/她應該被提示輸入Facebook登錄名,然後我將通過使用方法Get(「/ me」)來獲取公共信息。讓我知道我在這裏做錯了什麼。如何跳過Facebook應用程序權限對話框

public string GetFBAccessToken(string strAppID, string strAppSecret, string strUrl) 
{ 
    // Declaring facebook client type 
    var vFB = new FacebookClient(); 
    string strAccessTok = string.Empty; 
    try 
    { 
    if (!string.IsNullOrEmpty(strAppID) && !string.IsNullOrEmpty(strAppSecret) && !string.IsNullOrEmpty(strUrl)) 
     { 
     // Getting login url for facebook 
      var loginUrl = vFB.GetLoginUrl(new 
          { 
          client_id = strAppID, 
          client_secret = strAppSecret, 
          redirect_uri = strUrl, 
          response_type = "code", 
          state = "returnUrl", 
          //scope = "", 
          display = "popup" 
          }); 

     // Redirecting the page to login url 
     if (HttpContext.Current.Request.QueryString["code"] == null) 
     { 
      HttpContext.Current.Response.Redirect(loginUrl.AbsoluteUri); 
     }      

     // Fetching the access token from query string 
     if (HttpContext.Current.Request.QueryString["code"] != null) 
     { 
      dynamic result = vFB.Post("oauth/access_token", new 
          { 
           client_id = strAppID, 
           client_secret = strAppSecret, 
           redirect_uri = strUrl, 
           code = HttpContext.Current.Request.QueryString["code"] 
          }); 
     // Getting access token and storing in a variable 
     strAccessTok = result.access_token; 
      } 
     } 
     return strAccessTok; 
    } 
    catch (Exception ex) 
    { 
    //if (HttpContext.Current.Request.QueryString["response_type"] == "code") 
    //{ 
    // var fb = new FacebookClient(); 
    // var details = fb.Get("/me"); 
    //} 

    return strAccessTok; 
    } 
} 
+0

在這裏,我可以提示用戶登錄,然後立即轉到權限對話框。但我想跳過權限對話框,然後訪問該特定用戶的公共配置文件信息。 –

回答

0

無論您使用的平臺/語言如何,解決方案可以如下。

  1. 檢查使用的登錄狀態。 https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
  2. 根據響應狀態,強行調用您的操作(即,如果用戶已連接,則登錄,獲取權限或任何其他操作)。登錄請檢查FB的參考文檔。 https://developers.facebook.com/docs/facebook-login/login-flow-for-web/
+0

不,我希望這隻能使用.net來完成。我有限制不使用其他語言。 –

+0

正如我所提到的,不管這項技術如何;邏輯和實施將保持不變。參考網址會告訴您一個想法,您可以如何遵循這些步驟以及需要檢查和完成的事項。我希望這會有所幫助 –

0

號不能跳過登錄對話框。

事實上,APP擁有者與您的用戶建立信任關係非常重要。我建議您在使用您的APP對用戶進行身份驗證時遵循Login Best Practices

+0

但是,如果您看到很少的應用程序,他們根本沒有要求權限。 –

+0

我認爲這是因爲他們沒有要求額外的許可。當有人使用Facebook登錄與應用程序連接時,應用程序可以訪問其公共個人資料和好友列表 - 每個人都可以看到的信息。但對於其他權限,將會彈出一個權限對話框。 –

+0

正如你所說,在我上面的代碼中,我沒有在哪裏使用額外的權限。事實上,我已經評論了範圍參數,但仍然要求公開權限。我也想壓制這一點。 –

相關問題