War*_*ock 8 android facebook facebook-like
我正在尝试实现Facebook Like按钮,它不是使用WebView的Android Facebook SDK的一部分.这个想法非常简单.我使用SDK使用SSO登录用户帐户,因此如果用户已登录android FB应用程序,则用户无需再次键入登录名/密码.然后我想使用WebView插入标准的Like Button.
我已经拥有用户身份验证令牌,在墙上发送状态的权限等.问题是如何告诉WebView用户已经登录.我试图使用由FB生成的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>
Run Code Online (Sandbox Code Playgroud)
显然这是错误的/或者不应该以这种方式发送自动化,因为在点击Like按钮后,用户被重定向到Web浏览器中的登录页面.
所以问题是如何编辑此URL或如何在WebView中设置cookie(在CookieManager中设置为URL以及哪些cookie)以便用户签名.
感谢您的帮助!
我不太确定 FB 应用程序访问令牌对于使用 Web api 是否有效,但让我们尝试一下。
首先,确保您确实在 WebView 实例中使用 cookie:
CookieManager.getInstance().setAcceptCookies(true);
Run Code Online (Sandbox Code Playgroud)
我不确定 facebook 重定向页面是否会尝试设置 cookie,所以尝试一下,看看它是否能解决问题:
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
这将强制您的 WebView 打开自身内部的链接,因此 cookie(如果有)在类似页面发出重定向时不会丢失。
如果问题仍然存在,您还可以尝试在 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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2649 次 |
| 最近记录: |