![](/img/trans.png)
[英]How do I generate access token for facebook (restfb) which is never expired? (java)
[英]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.