我已经学习了一些Facebook API 3.0教程,包括Login / Logout和Publish To Feed示例 . 所以登录以这种方式工作:
-
应用程序打开,显示一个显示登录按钮的片段
-
用户单击登录,通过引用的FacebookSDK库(com.facebook.widget.LoginActivity)和使用会话提供的代码完成身份验证 .
-
用户被重定向到下一个屏幕
我不想让用户以这种方式登录 . 我希望他们在没有任何登录/注册的情况下使用我的应用程序,然后如果他们点击Facebook特定功能,例如在Facebook上分享一个笔记,然后该应用程序应该询问他们是否让Facebook使用他们的应用程序或其他东西,你知道通常的东西 . 如果没有这个,我会在publishFeedDialog()函数中得到一个nullpointer,因为session是null,因为没有登录 .
所以我的问题是,如何通过“登录”按钮忽略SplashFragment,因此当用户点击我的应用程序中的Facebook功能时,不会显示带有登录按钮的新屏幕,而只显示用户使用的默认Facebook身份验证窗口至?
6 回答
@erdomester,@ sromku
Facebook推出新的sdk版本4.x,其中会话被弃用,
有来自facebook的新登录概念
所以,现在您可以访问Facebook身份验证而无需登录按钮
layout.xml
MainActivity.java
编辑
如果你没有工作(在下面的评论中正确指出@Daniel Zolnai):
像这样的东西
实际上就是这样 . 它对我来说非常好 .
这对我有用
如果您在验证会话已打开后需要获取授权,请添加以下方式:
这个简单的库可以帮到你:https://github.com/sromku/android-simple-facebook
只需将此库添加到您的项目中,并将此库中的引用引用到Facebook SDK 3.0.x,并将您的应用程序的引用添加到此库中 .
然后你可以在没有
LoginButton
的情况下登录并执行简单的操作,例如发布供稿,获取 Profiles /朋友,发送邀请等等 .这是登录的样子:
然后,在
onLogin()
回调方法中,您可以发布这样的Feed:希望它可以帮到你 .
使用LoginButton访问FB详细信息的Turnaroubd是
1)隐藏您的LoginButton UI
2)添加自定义按钮
但我建议使用LoginManager
您可以使用节点供电的facebook-proxy模块绕过登录对话框 . 使用一键部署按钮在Heroku上创建自己的实例 .
它基本上做了什么:
从Facebook请求
access_token
使用
express-http-proxy
打开代理服务器让我们请求API的所有 endpoints