gpt4 book ai didi

facebook - 使用 Graph FQL 获取 friend 当前位置的纬度/经度

转载 作者:行者123 更新时间:2023-11-30 05:24:31 26 4
gpt4 key购买 nike

我正在尝试使用单个 API 调用获取用户所有 friend 的纬度/经度。我想我需要编写多查询 FQL 语句,但语法不正确。

我相信这两个查询需要如下所示:

'"friends":"SELECT uid,current_location FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"'

'"location":"SELECT location FROM page WHERE id IN (SELECT current_location_id FROM #friends)"';

我的问题是,我需要以某种方式在第一个查询中获取 current_location 的 ID,以便我可以在第二个查询中引用它,但我只知道如何获取包含该 ID 的数组。

感谢您的帮助!

澄清:

我不是要让 friend 签到。相反,我想在地理 map 上绘制用户所有 friend 的“current_location”(即他们居住的地方)。我可以使用以下 FQL 查询获取用户的“current_location”:

"SELECT uid,sex,current_location FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"

此查询返回以下数组:

[current_location] => Array
(
[city] => New York
[state] => New York
[country] => United States
[zip] =>
[id] => 108424279189115
[name] => New York, New York
)

其中不包含current_location(上例中的纽约)的经纬度

因此,我现在需要获取 current_location 的 ID(例如 108424279189115)并运行第二个 FQL 查询,例如:

"SELECT location,name FROM page WHERE page_id = 108424279189115)"

获取当前位置的经纬度。目前,我有一个运行第一个 FQL 查询的工作代码,然后在 php 中提取 page_id,然后运行第二个 FQL 查询以获取 current_location 纬度/经度。但是,出于性能原因,如果可能的话,我希望只运行一个多查询。

最佳答案

编辑:

查询应该通过将第二个查询调整为:

'"location":"SELECT location FROM page WHERE id IN (SELECT current_location.id FROM #friends)"';

在 FB API 中使用数组类型时,您可以通过执行 array.value 访问任何查询中的值

此外,如果您只需要页面的 ID,那么在您的第一个查询中执行 current_location.id 可能会获得更好的性能


您将要使用 fql.multiquery,这里有一个类似的答案可以根据您的需要量身定制:Facebook Graph API get all users and their status

有关多查询的 FQL 文档位于此处:http://developers.facebook.com/docs/reference/fql/

您是否也在尝试获取 checkin 对象的纬度/经度?如果是这样,您需要查看此资源:http://developers.facebook.com/docs/reference/fql/checkin/

编辑:

我不确定您尝试做的事情是否可行。我只是查看了 api 并测试了一些查询,从 friend 那里获得纬度/经度的唯一方法似乎是基于签到,如果有必要,你可以从那里获得页面上的详细信息......即使看着你的第二个查询,页表中的任何地方都没有引用 current_location_id,从页表中选择位置将为您提供它所属位置的位置信息。也许您可以详细说明您要完成的任务。

这是我在 PHP 中使用 FQL 编写的多查询语句(它将选择您所有 friend 签到的坐标,然后从那里获取有关该 friend 签到地点的详细信息):

try{
$multiQuery = "{
'query1':'SELECT coords, tagged_uids, page_id FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me())',
'query2':'SELECT name, description FROM page WHERE page_id IN (SELECT page_id FROM #query1)'
}";

$param = array(
'method' => 'fql.multiquery',
'queries' => $multiQuery,
'callback' => ''
);
$queryresults = $facebook->api($param);
print_r($queryresults);
}
catch(Exception $o){
print_r($o);
}

关于facebook - 使用 Graph FQL 获取 friend 当前位置的纬度/经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8846551/

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