2

如果您使用 Facebook 图形 API,您可以查看某人的所有公开信息(如果该人将这些信息设为公开),您只需要做几件事:打开浏览器,登录 Facebook 并知道该人的用户 ID#,例如, Mark Zuckerberg - facebook 创始人有用户 ID#4,所以去: https ://graph.facebook.com/4 => 你可以看到基本信息,比如名字,年龄,位置......(想象你改变了i 在 _ https://graph.facebook.com/i中,i 从 1 到 100 万,您可以看到百万用户的信息,只要他们公开设置他们的信息)

或者去这个链接你可以看到更多的信息,比如个人收藏和教育... Facebook(在http://developers.facebook.com/docs/reference/api/中查看更多信息)

我的目标是使用基本的 java url 转到这些链接并获取所有信息(基本上它们是文本)并将它们保存到文本文件中,使用 _https://graph.facebook.com/4 没有问题,但使用第二个链接问题是访问令牌代码是 XXX - 每次都会更改或将在 20~30 分钟后过期,所以我不能再运行我的程序来获取更多数据。问题是无论如何都可以获得永久访问令牌或将其延长更长的时间,请记住我只使用一个小型 Java 程序,与 Facebook 应用程序或其他任何东西无关。先谢谢了!

4

3 回答 3

2

不幸的是,您无法获得永久访问令牌,但您可以在访问令牌过期时捕获错误并请求新的。此外,您可能需要阅读 facebook 使用条款以确保您没有违反它。

于 2012-04-08T22:03:34.247 回答
1

您可以将访问令牌的有效期延长至 60 天。你可以通过这个:

https://developers.facebook.com/docs/facebook-login/access-tokens/

如果您从服务器端进行以下调用,Facebook 将返回一个有效期为 2 个月的访问令牌(扩展访问令牌):

GET /oauth/access_token?  
    grant_type=fb_exchange_token&           
    client_id={app-id}&
    client_secret={app-secret}&
    fb_exchange_token={short-lived-token} 
于 2014-07-15T19:47:00.743 回答
0

无法获得永久访问令牌,但在到期后很容易续订:那篇文章就是要走的路。神奇的网址是:

https://www.facebook.com/dialog/oauth/?client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URL&state=YOUR_STATE_VALUE&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
  • client_id
    您的应用程序的 ID。即使您正在使用 Java 或其他方式“离线”工作,您也必须注册一个 facebook 应用程序 - 但是 - 不需要实际对应用程序进行编程只需注册该应用程序,以便您获得一个固定的应用程序 ID(您需要在这里),您就可以了。
  • redirect_uri
    这是重要的一步 - facebook 重定向到 redirect_uri 中给定的 uri,并在该 uri 中添加“#access_token=...”。您可以解析该 uri 以获取令牌:

使用网络浏览器调用上面的链接,http://localhost用作 redirect_uri 就可以了。浏览器将尝试调用http://localhost#access_token=....并且显然失败,但您可以解析 url 以获取令牌。这不是一个非常简单的过程,但它对我有用。

于 2012-07-11T12:44:06.520 回答