2014-09-03 86 views
0

我需要我的Java(Swing)客戶端應用程序能夠在用戶的Facebook個人資料上發佈消息(包含鏈接和圖片)(這需要用戶登錄Facebook和授權刊物)。Java客戶端在Facebook上發佈的最佳方法

我可以看到3個選項:

  1. 。利用直接RestFB API從Java的。但我不清楚我的應用程序如何與互聯網瀏覽器交互(例如用戶登錄Facebook)。
  2. 讓我的Java應用程序在應用程序的網站(我的PHP服務器)上打開瀏覽器並利用Facebook的PHP SDK(但這種情況具有在我的服務器上創建額外負載的缺點)
  3. 與(2 )但使用Facebook的JavaScript SDK(在這種情況下,我不知道如何發佈本地存儲的圖片)

從我瞭解到目前爲止,選項(3)似乎是最簡單的(沒有服務器負載,不需要應用程序令牌等)。

但是,因爲我是新手,我正在尋找一些最簡單的方法的指導。

非常感謝, 托馬斯

回答

0

我應該推薦使用RestFB API,它是專爲你所需要的。

要登錄,您需要創建一個Facebook應用程序,並使用它來獲取OAuth憑證爲您的用戶,文檔:https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.1

以下是完整的文檔:http://restfb.com/

由於您使用的Swing ,你將不得不打開瀏覽器,試試這個片斷:

public static void openWebpage(URI uri) { 
    Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; 
    if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) { 
     try { 
      desktop.browse(uri); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

public static void openWebpage(URL url) { 
    try { 
     openWebpage(url.toURI()); 
    } catch (URISyntaxException e) { 
     e.printStackTrace(); 
    } 
} 

或者您可以使用此另一種方法: http://java.dzone.com/articles/web-browser-your-java-swing

----編輯----

由於您將不得不創建另一個應用程序來獲取令牌,這不會是一個問題。 您的swing應用程序調用Web應用程序進行登錄。它裏面,你將有一些像這樣的代碼:

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    console.log(response.authResponse.accessToken); 
    } 
}); 

也就是說令牌,你可以將它保存在一個臨時文件,或將其發送到您的Swing應用程序在許多方面。

+0

謝謝,但如果用戶需要登錄Facebook並授予我的應用權限,RestFB將如何打開Web瀏覽器?這對我來說真的不清楚。 Thx – Tom 2014-09-03 20:32:59

+0

我編輯了,也許它現在好多了 – 2014-09-03 20:37:19

+0

非常感謝,但我仍然沒有得到RestFB如何能夠與瀏覽器進行通信以獲取授權令牌進行發佈(它也需要從用戶的Facebook帳號瀏覽器)? – Tom 2014-09-03 20:45:02

相關問題