2011-10-18 27 views
0

我已經爲我的Android應用添加了一個webview,以便用戶可以喜歡特定的Facebook頁面。我已經使用webview完成了這項工作,正如我在這裏和其他地方閱讀的那樣,Graph API不允許用戶喜歡特定的Facebook頁面。使用webview的Android和Facebook「like」按鈕 - 需要登錄

但是,即使他們已經在設備瀏覽器中登錄到Facebook應用程序(如果已安裝)或touch.facebook.com,webview也需要用戶在第一次打開webview時登錄Facebook。

有什麼辦法可以登錄嗎?例如,我可以以任何方式將任何Facebook cookie從瀏覽器導入到我的應用程序中嗎?

如果我將Graph API添加到我的應用程序並在Facebook上保存了應用程序的密鑰哈希值,那麼用戶仍需要在webview打開後才能登錄?

感謝

回答

1

一種方法是得到的WebView cookie管理器的一個實例及其餅乾複製到HTTP客戶端cookie存儲,使HTTP客戶端使用的登錄設置在隨後談到Facebook的餅乾。事情是這樣的......

CookieManager cookieManager = CookieManager.getInstance(); 
String cookieString = cookieManager.getCookie("m.facebook.com"); 
CookieStore mCookieStore = new BasicCookieStore(); 
mCookieStore.setCookies(cookieString, ".facebook.com", "//"); 
mCookieStore.sync(); 

注意的getCookie只獲取了cookie的name = value的部分,所以你將不得不在域名和路徑添加的cookie在HTTP客戶端。

另一種方法是使用單點登錄(SSO)選項對Facebook的SDK授權功能,這將不要求用戶登錄,如果Facebook的應用程序存在並登錄。

+0

感謝TORID。我嘗試過使用Facebook SDK,但由於它仍然需要您登錄Webview,所以我採用了其他方法。 – basinbasin

+0

盆地盆地:你想過什麼? – Mani