如何通过FQL使用位置来装配Facebook事件 恩。我希望得到所有将在埃及举办的活动
SELECT name FROM event
WHERE strpos(lower(name), 'Egypt') >= 0
但是当我尝试使用上面的Query时,它会为我返回:
您的陈述不可转化。 WHERE子句必须包含 可索引的列。这些列在链接的表中标有* 来自http://developers.facebook.com/docs/reference/fql
注意:我希望得到按事件名称包含的公共事件。
答案 0 :(得分:1)
通过他们所做的更改,使用app access_token的查询不能 使用上面的查询:
SELECT name,location FROM event WHERE contains('egypt')
该查询适用于会话令牌(用户access_tokens
),但应用access_token
它只是返回:
{
"error": {
"message": "(#200) Must have a valid access_token to access this endpoint",
"type": "OAuthException",
"code": 200
}
这对我来说很令人惊讶,因为我仍然可以在事件表上使用除app以外的任何其他查询以及app access_token
更新: 在查看他们的文档后,我发现您只能使用app访问令牌进行非常有限的查询: https://developers.facebook.com/docs/reference/api/search/
我最终做的是我使用以下内容从我的用户获取会话access_token作为page_manager
https://www.facebook.com/dialog/oauth?client_id={MY_CLIENT_ID}&scope=manage_pages&redirect_uri={MY_REDIRECT_URI}&response_type=token
上述查询会返回您的access_token
,您可以使用它来成功运行查询。它基本上做的是它将你的access_token
作为散列归因
{MY_REDIRECT_URI}#access_token={MY_ACCESS_TOKEN}
如果您想解析服务器上的访问令牌,这对您不起作用,因为散列属性不会随请求一起发送到您的服务器。您可以做的是将type=web_server
附加到Facebook的上述请求中。在这种情况下,access_token
将作为名为code
答案 1 :(得分:0)
您最接近的是使用contains
谓词
SELECT name,location FROM event WHERE contains('egypt')
这会在文本
中为您提供一些包含“埃及”的事件答案 2 :(得分:0)
也许有点晚了,但这link可能会有所帮助。