2012-01-02 65 views
1

(使用服務器端流程)我有一個Facebook應用程序通過其中一個選項卡連接到Facebook頁面,這使得應用程序在iframe中。我使用下面的代碼來獲取訪問令牌,但只有當用戶點擊Facebook徽標並驗證應用程序時。我的問題是我應該怎麼做,所以我可以得到更好的用戶體驗,而不是顯示facebook徽標的東西。 謝謝。facebook iframe - 獲取facebook徽標而不是彈出身份驗證

ON pageLoad的()...... 保護無效的Page_Load(對象發件人,EventArgs的) { 串碼=的Request.QueryString [ 「代碼」];如果(HttpContext.Current.Session [「fbAccessToken」]!= null) { authToken = HttpContext.Current.Session [「fbAccessToken」]。ToString(); }

if (!String.IsNullOrEmpty(authToken)) 
    { 
     thisUserFBID.Value = HttpContext.Current.Session["fbUserId"].ToString(); 
    } 
    else if (code == "" || code == null) 
    { 
     Response.Redirect(appHelp.GetCodeUrl()); 
     //Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "shareMe();", true); 
    } 
    else 
    { 
     authToken = appHelp.GetAccessToken(code); 
     Session["access_token"] = authToken; 
     HttpContext.Current.Session["fbAccessToken"] = authToken; 

     try 
     { 
      var fb = new FacebookClient(); 
      fb.AccessToken = authToken; 
      dynamic me = fb.Get("me"); 
      thisUserFBID.Value = (string)me.id; 
      HttpContext.Current.Session["fbUserId"] = thisUserFBID.Value; 
      if (me.locale != null) 
       lang = (string)me.locale; 
      else 
       lang = "en_US"; 
      HttpContext.Current.Session["lang"] = lang; 
     } 
     catch (Exception) 
     { 
      //Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "shareMe();", true); 
      //Response.Redirect(appHelp.GetCodeUrl()); 
     } 

    } 
} 

回答

0

咦?你不想讓用戶知道他們登錄的是什麼?我很困惑。在頁面選項卡應用程序中,您可以提示他們授權應用程序,或者他們已經登錄,向他們展示好東西。我不知道會有什麼比這更好的用戶體驗。