我的目标是从用户时间线获取公共数据,例如状态、提要、用户名、家乡等。我正在使用 Java 中的桌面应用程序,它发送带有访问令牌的 HTTP 请求来获取时间线数据。有两种类型的令牌,其中一种给我我想要的完整数据,另一种给我部分数据。两者都在下面提到。
类型 1.单击“获取访问令牌”并授予权限后在 Graph API Explorer 上生成
(这将在 1 小时内到期,并为我提供我想要的用户时间线中的所有数据,例如状态、ID、用户名、提要等)。为此,我使用下面的 url 并对 API 进行 HTTP 调用:https://graph.facebook.com/<Username>?fields=id,name,statuses.fields(message)&access_token=AAACEd
这为我提供了响应 JSON 中所有提到的字段。
类型 2.创建应用后生成。
使用 appId 和 appSecret 我生成了一个短暂的访问令牌。(这将在 1 小时内到期。)在此之后使用https://developers.facebook.com/docs/howtos/login/extending-tokens/上提到的文档和 url我能够生成长期访问令牌(这些过期大约 60 天)。
当我在上述 url 中使用此令牌进行身份验证时,它不会解决我的目标并从用户时间轴返回有限的信息。它不返回“状态”字段,并且只返回时间线中的少数公共提要。
这里的问题是访问令牌,它给我所有的数据在一小时内过期,我不可能在每小时手动更改我的应用程序中更改它,第二个访问令牌寿命很长,但没有给我完整的数据。
所以我想要长寿用户访问令牌而不是应用程序生成的访问令牌,它给了我所有的数据。即我想要上述类型 1 的长寿命访问令牌。延长访问令牌到期时间的过程需要应用程序 ID 和密码,但 Graph API Explorer 没有相同的。
请提出一种方法来获得类型 1 的长寿命访问令牌或任何其他方式来实现我的目标。请帮忙。