【发布时间】:2014-01-21 13:47:48
【问题描述】:
我正在尝试获取有关我被邀请参加的活动的信息。 我在 Open Graph 页面中创建了具有所有可用权限的访问令牌并使用它。
我可以获取一个事件,但我看不到另一个事件,我很在意。我注意到该事件是“仅限邀请”,但它的设置超出了我的控制范围。
它没有显示在我的事件中/可能(当我单击“可能”时),当我尝试通过 ID(graph.facebook.com/id)访问它时,我收到错误消息“不支持的获取请求。 ”。
我试过了:
- RestFB (Java) - 这是我的目的
- PHP SDK
- JavaScript SDK
除了使用 FQL,我还能做更多事情吗? 我读过它,我想使用简单的请求来获取事件,如本页所述:https://developers.facebook.com/docs/graph-api/reference/event/。
如果有帮助,我可以附上代码。 非常感谢你看这个。
编辑: Java 代码:
FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN);
String attending = facebookClient.fetchObject("{event-id}/attending", String.class);
System.out.println("Attending: " + attending);
它在一个事件上就像一个魅力,但在另一个事件上失败(返回空数据数组)(我被邀请参加两个)。
JavaScript 代码:
FB.api(
'https://graph.facebook.com/{event-id}',
'get',
null,
function(response) {
if (!response) {
alert('Error occurred.');
} else if (response.error) {
document.getElementById('result').innerHTML =
'Error: ' + response.error.message;
} else {
alert('test');
response['data'].forEach(function(entry) {
alert(entry['object']['name']) ;
});
}
}
);
不返回错误,但 response['data'] 数组为空,而在另一种情况下包含正确的数据。
编辑 2: 此外,我尝试使用 restFB 进行 FQL。它同样不起作用 - 以下代码仅返回一个事件,例如 http 请求。
FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN);
String query = "SELECT name, eid FROM event where eid = {event1-id} OR eid = {event2-id}";
List<FqlUser> event = facebookClient.executeFqlQuery(query, FqlUser.class);
System.out.println("Events: " + event);
【问题讨论】:
-
请始终分享您的代码。这告诉我们你到目前为止所做的尝试。此外,这个地方到处都是极客(包括我),代码可以帮助我们更好地理解你的问题。
-
为了确定,您想通过 API 接收的第二个事件,您是否被邀请参加(因为它是“仅限邀请”)?因为如果你不是,你只是没有权限“看到”它......
-
我写道:“我都被邀请了”。是的,我仍然受邀参加。我可以以正常方式看到它。最后的结论很明显:)
标签: java javascript php facebook facebook-graph-api