【问题标题】:How to use Facebook access token in android app webview如何在 android 应用程序 webview 中使用 Facebook 访问令牌
【发布时间】:2012-11-27 17:53:07
【问题描述】:

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

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

【问题讨论】:

标签: android facebook android-webview


【解决方案1】:

据我了解,你不能。您为您的应用获取的访问令牌只能与您的应用的 API 凭据一起使用。 IE。访问令牌仅适用于还包含您应用的密钥和秘密的调用。即使您能找到将这些传递到 WebView 的方法(FB's Data Policies 很可能没有涵盖),您也可能不得不让 WebView 假装使用 Android SDK(因为 FB 会检查调用的来源) .这就是为什么我建议你不能。

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

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

【讨论】:

  • 非常感谢您的帮助,使用cookiemanager是可以的,正如您所说,每次webview laod url我必须添加在获取访问令牌的同时获得的cookie。例如 wb = (WebView)this.findViewById(R.id.share_wb);字符串 url = "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】:

您可以将该 AccessToken 单独存储在 Properties 中并检查您是否使用 webview 然后传递该 accessToken 并且当用户使用 Ti.Facebook 时使用另一个 AccessToken。

【讨论】:

    【解决方案3】:

    仔细阅读这个项目并尝试...我在我的项目中尝试了这个示例..它有效..

    在你做这个例子之前,你必须在 facebook 中创建一个页面并获取一个 application-id,才能在这个项目中使用

    https://github.com/ddewaele/AndroidFacebookSample

    【讨论】:

    • 这似乎只是一个通用的 Facebook 集成(并且使用了旧的 API)——它不会在任何地方使用 WebView。
    猜你喜欢
    • 2012-06-04
    • 2012-04-12
    • 2014-10-23
    • 2018-09-07
    • 1970-01-01
    • 2013-08-05
    • 2013-08-22
    • 2016-01-18
    • 2014-03-10
    相关资源
    最近更新 更多