首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java阅读Facebook墙

问Java阅读Facebook墙
EN

Stack Overflow用户
提问于 2015-03-14 08:33:11
回答 2查看 1.5K关注 0票数 0

我正在使用Java构建一个门户;除了其他需求之外,我还在绞尽脑汁地思考一个非常简单(至少是第一次查看)的要求:我的客户想在他的门户上看到他facebook墙上的第一个N条帖子,他想读他的twitter页面的第一个N条推文

因为我的java代码是基于Spring的,所以我想使用social、和来满足需求

我在推特上没有问题,事实上

  • 在twitter上创建了一个应用程序
  • 获得twitter应用程序id和应用程序机密
  • 准备代码

几个小时后,大家都干得很好

facebook带来了很多问题,很多时候我都在和它做斗争,我从春季社交网站转到了facebook4j (因为在我看来,上一个问题更强)。我做了以下工作

  • 在FB上创建一个应用程序
  • 得到了facebook appId和appSecret
  • 告诉代码我需要read_stream权限
  • 准备代码

但我无法阅读墙上的帖子,有谁能满足这种情况吗?这里是我的facebook4j代码

代码语言:javascript
复制
private static final Logger log = LoggerFactory.getLogger(FacebookTest.class.getName());
public static void main (String[] a)
{
    try
    {
        ConfigurationBuilder cfgBui = new ConfigurationBuilder();
        cfgBui.setDebugEnabled(true);
        cfgBui.setOAuthAppId(myAppId);
        cfgBui.setOAuthAppSecret(myAppSecret);
        cfgBui.setUseSSL(true);
        Configuration cfg = cfgBui.build();
        FacebookFactory ff = new FacebookFactory(cfg);
        OAuthSupport support = new OAuthAuthorization(cfg);
        support.setOAuthPermissions("read_stream");
        AccessToken appAccessToken = support.getOAuthAppAccessToken();
        Facebook face = ff.getInstance(appAccessToken );
        ResponseList<Post> posts = face.searchPosts("test");
        for (Post post : posts)
        {
            System.out.println(post.getId());
        }
    } catch (Exception e)
    {
        log.error("Errore", e);
    }
}

据我所知,我应该需要用户访问令牌,但我不知道如何生成它;是否应该创建一个登录流并向用户显示FB登录对话框?如果是这样的话,我为什么要创建应用程序id和应用程序机密?在我的场景Moreover...in中,他们没有任何意义,我的case...the服务器端应该在FB上进行身份验证,并从一个非常熟悉的用户墙(我的客户的墙.)读取帖子。so....where我应该呈现登录对话框吗?在FB登录后,我应该在哪里重定向?

有什么好人:)谁能向我澄清FB阅读后的流程?

EN

回答 2

Stack Overflow用户

发布于 2015-03-14 09:24:51

您必须使用其中一种可能性来授权用户(使用read_stream)才能访问他的流。以下是所有可能性的链接:https://developers.facebook.com/docs/facebook-login/v2.2

您还可以使用Graph:https://developers.facebook.com/tools/explorer/生成访问令牌

有关访问令牌以及如何生成这些令牌的详细信息可以在以下链接中找到:

请记住,扩展用户令牌只持续60天,之后您的客户将不得不手动刷新它。一般来说,由于商业原因,你不允许使用用户概要文件,而且在网站上显示用户流是非常不寻常的。

更好的方法是:使用Facebook页面。/page-id/feed具有永久的扩展页令牌。

票数 3
EN

Stack Overflow用户

发布于 2015-03-14 17:17:53

如果您使用spring-social-facebook,您可以让用户通过(前端登录流)登录,然后您可以访问用户墙。但是,用户需要登录并授权您的应用程序执行操作。

这里是一个spring社会示例项目,演示了spring facebook登录是如何实现的https://github.com/spring-projects/spring-social-samples

此外,在您的java代码中,您可以使用feed操作来收集关于home feed的信息,并对其进行查询。检查一下文件。

代码语言:javascript
复制
    facebook.feedOperations().
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29047029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档