2011-01-16 58 views
0

如何將我的應用程序帳戶鏈接到Facebook?這是代碼: -什麼是Facebook開發人員工具包中的Connect.RegisterUser

BrowserSession _browserSession = new BrowserSession(ApplicationKey, new Enums.ExtendedPermissions[] { Enums.ExtendedPermissions.email, Enums.ExtendedPermissions.manage_mailbox, Enums.ExtendedPermissions.read_mailbox, 
       Enums.ExtendedPermissions.status_update, Enums.ExtendedPermissions.share_item, Enums.ExtendedPermissions.offline_access}); 

       Connect connect = new Connect(_browserSession); 
       connect.RegisterUsersAsync(List<ConnectAccountMap>); 

正如您所見,connect.RegisterUsersAsync需要ConnectAccountMap類型的List。我如何獲得這些ConnectAccountMaps? ConnectAccountMap的屬性是EmailAddress,AccountId和AccountUrl。但我如何獲得這些參數?

感謝提前:)

+0

您是否已經提取了像EmailAddress這樣的數據? –

+0

@Shekhar_Pro: - 不,我沒有取。我需要取它嗎? Facebook不會給出真實的電子郵件地址。它只提供代理電子郵件地址,這意味着你得到像'asasdasa82348932903 @ facebook.com'這樣的東西。 – TCM

+0

@Ankit請參閱我沒有使用Toolkit,而是自己編寫所有代碼。但步驟與文檔中提到的相同。當您使用這些擴展權限授權您的應用程序時,您將獲得一個授權密鑰來交換該密鑰,您將獲得一個會話密鑰,使用該會話密鑰來獲取電子郵件和其他信息。 Facebook提供的REAL電子郵件ID只是不要給他發垃圾郵件。 –

回答

1

最後,我回答了我自己的問題。我曾嘗試Facebook C#SDK,但沒有得到它的工作。我研究了示例並更改了appId,並且在登錄時甚至取得了成功,但無法使其工作。此功能失敗

[ScriptableMember] 
     public void LoggedIn(string uri) //string sessionKey, string sessionSecret, int expires, string userId, string allowedPermissions) 
     { 
      FacebookAuthenticationResult authResult; 
      if (FacebookAuthenticationResult.TryParse(uri, out authResult)) 
      { 
       fbApp.Session = authResult.ToSession(); 
       loginSucceeded(); 
      } 
      else 
      { 
       failedLogin(); 
      } 
     } 

FacebookAuthenticationResult.TryParse保持失敗,我很沮喪像任何事情。最後,我使用Facebook Developer Toolkit V3.1本身進行工作。

此查詢工作只是罰款: -

_fb.Fql.QueryAsync("SELECT email FROM user WHERE uid=" + u.uid, new Fql.QueryCallback((str, obj, exc) => { 

         Debug.WriteLine(str); 

        }), null); 

Offcourse您的應用程序應該向電子郵件的擴展權限。查詢是強制需要的,因爲在Facebook的user對象中沒有可以獲取真實電子郵件地址的屬性。你可以,如果你想檢索proxied_email,但大多數情況下,這不是你一直在尋找,因此查詢!您將獲得xml,您可以使用Linq To Xml或傳統的Xml c#類輕鬆地解析它。乾杯!