gpt4 book ai didi

Java 阅读 Facebook 墙

转载 作者:行者123 更新时间:2023-12-01 18:16:48 28 4
gpt4 key购买 nike

我正在使用 Java 构建一个 Web 门户;除了其他要求之外,我正在努力解决一个非常简单的(至少乍一看)要求:我的客户希望在他的门户网站上看到他的 Facebook 墙的前 N ​​个帖子他想阅读他的 Twitter 页面的前 N ​​条推文

由于我的java代码是基于Spring的,所以我想使用springsocial,springsocialtwitter和springsocialfacebook来满足需求

使用 Twitter 我没有任何问题;事实上我

  • 在 Twitter 上创建了一个应用
  • 获取 Twitter 应用 ID 和应用 key
  • 准备好的代码

几个小时后,一切都进展顺利

Facebook 的问题与生俱来,我花了很多时间与之抗争我从 spring Social 转到了 facebook4j (因为最后一个在我看来更强)。我做了以下事情

  • 在 FB 上创建了一个应用
  • 获取 facebook appId 和 appSecret
  • 告诉代码我需要 read_stream 权限
  • 准备好代码

但我无法阅读墙上的帖子有没有人能够满足这种场景?这是我的 facebook4j 代码

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);
}
}

据我了解,我应该需要用户访问 token ,但我不知道如何生成它;我应该创建一个登录流程并向用户显示 FB 登录对话框吗?如果是这样,我为什么要创建应用程序 ID 和应用程序 key ?他们在我的场景中毫无意义此外...就我而言...服务器端应该在 FB 上进行身份验证并从众所周知的用户墙(我的客户墙...)读取帖子,所以...我应该在哪里显示登录对话框? FB登录后我应该重定向到哪里?

有哪位好心人可以帮我解释一下FB阅读帖子的流程吗?

最佳答案

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

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

有关访问 token 以及如何生成它们的详细信息可以在以下链接中找到:

请记住,扩展用户 token 只能持续 60 天,之后您的客户必须手动刷新它。一般来说,您不得出于商业原因使用用户个人资料,并且在网站上显示用户流的情况也很罕见。

更好:使用 Facebook 页面。 /page-id/feed 具有永久有效的扩展页面 token 。

关于Java 阅读 Facebook 墙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29047029/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com