Facebook像使用SDK的WebView中的button

我正在尝试使用WebView实现不是Android Facebook SDK的一部分的Facebook Likebutton。 这个想法很简单。 我使用SDKlogin到用户帐户使用SSO所以用户不需要再次键入login名/密码,如果用户已经login在Android FB的应用程序。 然后我想用WebView插入标准的Like Button。
我已经有用户身份validation令牌,在墙上发送状态的权限等问题是如何告诉WebView用户已经login。 我试图用Web生成的URL(webview.loadURL())使用WebView(启用JS):

http://www.facebook.com/plugins/like.php?href=myurl&send=false&layout=button_count&width=450&show_faces=true&action=like&colorscheme=light&font&height=21&appId=myId" + "&token=" + mFacebook.getAccessToken()+"&expires="+mFacebook.getAccessExpires(); //(or auth_token instead)<br> 

很明显,这是错误的或不足以发送这样的自动化,因为点击Likebutton后,用户被redirect到Web浏览器的login页面。
所以问题是如何编辑这个URL或如何设置cookie(在CookieManager中设置为URL以及哪些cookie)在WebView中签名用户。
谢谢你的帮助!

Solutions Collecting From Web of "Facebook像使用SDK的WebView中的button"

我不太确定FB应用程序访问令牌是否适合使用Web API,但是我们来试一下。

首先,确保你实际上使用了cookies作为你的WebView实例:

 CookieManager.getInstance().setAcceptCookies(true); 

我不确定脸书redirect页面是否会尝试设置cookie,所以试试看看它是否有效:

 webview.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); 

这将迫使你的WebView打开本身的链接,所以如果有的话,cookie就不会丢失,如果类似的页面发出redirect的话。

如果问题仍然存在,您也可以尝试在您的WebView中加载url之前手动设置cookie。

 // This just initializes the sync manager, do it once CookieSyncManager.createInstance(this); CookieManager.getInstance().setCookie("facebook.com", "token=" + mFacebook.getAccessToken() + "; domain=facebook.com"); CookieSyncManager.getInstance().sync(); 

我认为这是你正在寻找的: https : //developers.facebook.com/docs/authentication/server-side/

如果我正确地阅读这篇文章,一旦你实现了OAuth,你可以使用Graph API来实现你正在寻找的“Like”button,因为你可以validation设备 – 而不仅仅是用户。