繁体   English   中英

特定ID不接受我在RestFB for Facebook中的访问令牌

[英]specific IDs do not accept my access token in RestFB for Facebook

我尝试通过RestFB API获取多个对象。 我有一个ID列表(端点?),并希望它们由RestFB批量提取。 因此我使用FacebookClient.fetchObjects() 现在出现的问题是我的列表中的一个ID似乎不接受令牌。 我不是那种进入facebook的令牌系统的人。 我生成的唯一令牌是app-token

列表中使用的两个ID:

工作ID:1104054513000418
不工作ID:1106761186063084

这些ID属于来自同一作者的帖子,除了内容之外,它们之间没有真正的区别。

试图手动获取这些ID的数据(没有批量获取)我有同样的问题。 因此,多重获取方法的误用不是问题。

码:

FacebookClient.AccessToken accessToken = new DefaultFacebookClient().obtainAppAccessToken(appId, appSecurity);
FacebookClient fbClient = new DefaultFacebookClient(accessToken.getAccessToken());

// consider filteredSocialItems as given
List<String> filteredItemIDs = filteredSocialItems.stream()
        .map({ item -> item.properties.get("sourceId") })
        .collect(Collectors.toList());

JsonObject json = fbClient.fetchObjects(filteredItemIDs, JsonObject.class, Parameter.with("fields", "name,id"));

例外:

Caught: com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: (#100) Requires user session (code 100, subcode null)
com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: (#100) Requires user session (code 100, subcode null)
    at com.restfb.DefaultFacebookClient$DefaultGraphFacebookExceptionMapper.exceptionForTypeAndMessage(DefaultFacebookClient.java:1201)
    at com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary(DefaultFacebookClient.java:1122)
    at com.restfb.DefaultFacebookClient.makeRequestAndProcessResponse(DefaultFacebookClient.java:1063)
    at com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:974)
    at com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:936)
    at com.restfb.DefaultFacebookClient.fetchObjects(DefaultFacebookClient.java:431)
    at facebookImageRefresh.run(facebookImageRefresh.groovy:48)
    at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:48)

解决问题有点令人筋疲力尽。 这是一个旧的Facebook应用程序版本的问题。

Facebook应用程序是在您的Facebook开发者帐户中创建的

由于Facebook改变了其API规则,这就是问题所在。 您不能只使用其ID来访问帖子,例如使用1104054513000418您还必须为创建该帖子的页面/用户的ID添加前缀。 因此,如果您的网页ID是589476469431696那么您实际上需要创建两者的组合ID,例如589476469431696_1104054513000418 - > "{page_id}_{post_id}" 我不知道这是否可以互换。

所以在创建一个新的应用程序后,我能够让它工作。

另一个信息:因为我一直在寻找用户访问令牌 - 我在我的Facebook应用程序高级设置中找到了它。 但似乎我不再需要它了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM