如何在Android应用程序webview中使用Facebook访问令牌

joy*_*joy 24 android facebook android-webview

在我的应用程序中,用户打开一个WebView移动版本的Facebook个人资料页面(http://m.facebook.com/some_page).我的问题是,打开时WebView,用户需要输入Facebook的用户名和密码.由于我已经通过FB SDK获得了Facebook访问令牌,并且用户可能已经安装了Facebook应用程序,我认为有一些方法可以在打开时跳过这个令人烦恼的登录Facebook的阶段WebView.

换句话说,我如何使用我的应用程序中已有的访问令牌WebView

dom*_*som 1

据我了解,你不能。您为应用程序获得的访问令牌只能与应用程序的 API 凭据结合使用。即,访问令牌仅适用于也包含应用程序密钥和秘密的调用。即使您可以找到一种方法将这些传递到 WebView(FB 的数据策略很可能未涵盖),您可能必须让 WebView 假装使用 Android SDK(因为 FB 会检查调用的源) 。这就是为什么我建议你不能。

您也不能让 WebView 使用用户在其常用浏览器中可能拥有的 cookie,因为出于安全原因,每个 WebView 都有自己的上下文。

如果您经常在应用程序中使用用于 FB 的 WebView,则可以从第一个 WebView 中提取身份验证 cookie,然后使用CookieSyncManager将其插入到后续实例中。或者您可以保存第一个 WebView 的实例状态,然后重用它。这些只是可能行得通也可能行不通的想法;我还没有检查过它们。

  • 非常感谢您的帮助,使用cookiemanager是可行的,正如您所说,每次webview laod url我都必须添加在获取访问令牌的同时获取的cookie。例如 wb = (WebView)this.findViewById(R.id.share_wb); String url = "http://m.facebook.com/sharer.php?u=www.douban.com"; CookieSyncManager.createInstance(this); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setCookie(url, Facebook.cookieString); CookieSyncManager.getInstance().sync(); wb.loadUrl(url); (2认同)