gpt4 book ai didi

java - 从 Java 访问 Facebook Graph API

转载 作者:行者123 更新时间:2023-12-01 12:57:25 68 4
gpt4 key购买 nike

我想编写一个 Java 程序,它运行 Facebook 图形搜索查询,例如“查找来自 X 城市、喜欢 Y 的所有人员”。

现在,我想获取有关页面 Y 的数据。

为此,我编写了以下代码:

    final Facebook facebook = new FacebookFactory().getInstance();

facebook.setOAuthAppId("...", "...");
facebook.setOAuthAccessToken(new AccessToken("..."));
final AccessToken oAuthAccessToken = facebook.getOAuthAccessToken();

try {
final ResponseList<Page> pages = facebook.searchPages("Costume jewelry");
LOGGER.debug("oAuthAccessToken: " + oAuthAccessToken);
} catch (FacebookException e) {
LOGGER.error("", e);
}

运行此代码时,出现以下异常:

22:56:38.405 [main] DEBUG f.internal.http.HttpResponseImpl - {"error":{"message":"Invalid OAuth access token.","type":"OAuthException","code":190}}

22:56:38.481 [main] ERROR c.a.f.FbCustomerProfiler -
facebook4j.FacebookException: message - Invalid OAuth access token.
code - 190
Relevant information for error recovery can be found on the Facebook Developers Document:
https://developers.facebook.com/docs/graph-api/using-graph-api/#errors

at facebook4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:179) ~[facebook4j-core-2.1.0.jar:2.1.0]
at facebook4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65) ~[facebook4j-core-2.1.0.jar:2.1.0]
at facebook4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:93) ~[facebook4j-core-2.1.0.jar:2.1.0]
at facebook4j.FacebookImpl.get(FacebookImpl.java:2584) ~[facebook4j-core-2.1.0.jar:2.1.0]
at facebook4j.FacebookImpl.searchPages(FacebookImpl.java:2256) ~[facebook4j-core-2.1.0.jar:2.1.0]
at facebook4j.FacebookImpl.searchPages(FacebookImpl.java:2251) ~[facebook4j-core-2.1.0.jar:2.1.0]
at myproduct.FbCustomerProfiler.run(FbCustomerProfiler.java:32) [classes/:na]
at myproduct.FbCustomerProfiler.main(FbCustomerProfiler.java:20) [classes/:na]
Disconnected from the target VM, address: '127.0.0.1:50651', transport: 'socket'

我从 Facebook4J 中获取了这些示例地点。我的代码和他们的代码之间的唯一区别是,在我的版本中,我不调用 facebook.setOAuthPermissions(commaSeparetedPermissions);

因此我认为缺少权限是导致错误的原因。

为了运行返回有关页面的数据(最重要的是页面的 ID,我可以在下一个查询中使用)的查询,我需要什么权限?

最佳答案

要搜索页面,您需要根据 Facebook 文档将应用程序访问 token 与您的请求一起传递:

https://developers.facebook.com/docs/graph-api/using-graph-api/v2.0#search

Searches across Page and Place objects requires an app access token.

你可以使用

{app_id}|{app_secret}

为此。

顺便说一句,你原来的问题“查找所有来自 X 城市、喜欢 Y 的人”将不起作用,因为你无法从 FB 查询此类信息。

关于java - 从 Java 访问 Facebook Graph API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23768033/

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