2009-07-20 104 views
2

我在C#中創建了一個桌面應用程序。 這個應用程序應該做的事情之一是將事情發佈到facebook用戶的狀態(如:「戴夫剛剛贏得了3枚金牌」)。無論用戶現在是否登錄Facebook,都會發生這種情況。我希望用戶給我所有需要的權限一次,然後一切都會自動發生(我會保存任何需要在我的數據庫)。 我曾嘗試使用Facebook開發者工具包2.0 for .net,但沒有看到任何可以幫助我的東西。 任何幫助將不勝感激。自動登錄到facebook

回答

1

Iv'e在這裏得到了一些答案。我認爲它回答了我最近在網絡上看到的其他問題:

我的答案與桌面應用程序在facebook(facebook連接)之外工作有關。 +我正在使用facebook開發人員工具包2.1:

以下是如何獲得離線訪問所需的特殊權限。以及如何獲得會話密鑰:

facebook.Components.FacebookService FS = new facebook.Components.FacebookService(); 
FS.GetExtendedPermission(facebook.Types.Enums.Extended_Permissions.offline_access); 

第二行會迫使你登錄,之後會要求權限之後,用戶選擇的用戶授予權限,您將得到在後URL - 在fb_si_session_key。但工具包開發商沒有做足夠的它給您帶來:-(

所以,你有幾個選擇簡單的一個是做:

FS.Logoff(); 
FS.ConnectToFacebook(); 

會發生什麼事是,你會看到對於第二和之前登錄屏幕youll能點擊任何東西會消失,但這個時候你就會有正確的會話密鑰,你可以得到它這樣的:。

string myPermanentSessionKey = FS.API.SessionKey; 

如果你不想展示那惱人的屏幕再次讓你有很少的選擇,所有這些都與改變源代碼有關工具包的es。我不會在這裏進入它,但只是告訴你一個簡單的選擇:在facebookconnect()函數中,我改變它接收參數(isShow),當我發送它爲true時,它表現正常,當我發送false它 - 它跳過formLogin.ShowDialog();

它的工作。

4

對於你的問題:你 需要使用Facebook連接API

  • 有一個叫offline_access功能 - 它的擴展權限。
  • 在FB連接,你需要切換正確彈出:
  • 的工作流程是這樣的:
    • 用戶使用FB連接,以確認他想您的應用程序連接到自己的Facebook賬戶的事實。
    • 您觸發彈出窗口。
    • 然後,您可以致電他的允許所有呼叫,即使他是脫機(或不使用Facebook Connect)

爲了便於理解:FB連接的意思是這樣,你可以輕鬆登錄用戶進入他的應用程序並代表他完成所有事情。 offline_access實際上是用於cronjob工作的。

+0

謝謝。 你能告訴我如果(以及如何)通過開發人員工具包完成這項工作嗎? – 2009-07-20 11:30:59

+0

對不起,我只有fb connect和canvas應用程序的實踐經驗 – 2009-07-20 13:26:16