从服务中使用facebook android sdk

我的应用程序具有在服务器上发送一些内容功能,并且(需要)在Facebook上发布它.它使用服务发送(对于商店数据我使用sqlite).是否有可能从服务处理facebook会话e.t.c?我需要它,因为内容将存储在数据库中的时间和发送时间可能不同(可能连接将在很长时间内丢失并且在连接可用后开始发送,但只有我的应用程序的发送服务才会在此活动时间).对于这种情况我找不到任何解决方案(好的解决方案会很棒).请帮忙.

最佳答案
用户必须明确授予应用程序权限,并且Android服务不支持Activity.startActivityForResult(),因此无法通过从服务重新授权来打开会话或添加新权限.

但是,如果您在应用程序的某个活动中打开/重新授权会话,则认情况下会话的状态将保存到SharedPreferences.如果服务在发生这种情况后创建会话,它将以SessionState.CREATED_TOKEN_LOADED结束.如果Session.getState()是CREATED_TOKEN_LOADED,则Session保证能够在没有UI的情况下使用openForRead(),并且传递null活动是合法的.会话将具有您的活动保存的所有权限.

为了简化这一切,您的服务可以致电:

Session session = Session.openActiveSession(this);

如果SharedPreferences中没有有效的令牌,则此调用返回null.

如果您的应用UI具有设置区域,则首先获取存储令牌的简便方法是将LoginFragment包含为设置面板之一.这将允许您的用户登录/注销,并应保存会话状态,以便您的服务可以在同一个应用程序中进行提取.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...