我正在使用Facebook Graph API,想要检查用户是否通过用户ID验证了我的Facebook应用。我该怎么做呢?
答案 0 :(得分:3)
您使用:
SELECT is_app_user FROM user WHERE uid=USER_ID
这应该返回:
[
{
"is_app_user": true
}
]
如果用户已登录您的应用程序。
答案 1 :(得分:2)
扩展ifaour的答案,在PHP中,这个查询看起来像这样:
<?php
$facebook = new Facebook(
'appID' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET
);
$result = $facebook->api(array(
'method' => 'fql.query',
'query' => "SELECT is_app_user FROM user WHERE uid=$user_id"
));
$is_installed = $result[0]['is_app_user'];
答案 2 :(得分:0)
在这里,您可以将多个请求一起批处理,避免使用FQL。
假设您已登录Facebook并将访问令牌设置为应用程序访问令牌,您可以执行以下操作:
$batch = array();
foreach($friendArray AS $friend) {
$batch[] = array(
'method' => 'GET',
'relative_url' => '/' . $friend . '?fields=installed'
);
}
FB()->useApplicationAccessToken();
$batchResponse = FB()->facebook()->api('?batch='.json_encode($batch), 'POST');
然后您可以使用以下代码处理批处理响应:
$installedUsers = array();
$notInstalledUsers = array();
foreach ($batchResponse AS $response) {
$body = json_decode($response['body'], true);
if (!isset($body['id']))
continue;
$id = $body['id'];
if (isset($body['installed']))
$installedUsers[] = $id;
else
$notInstalledUsers[] = $id;
}