如何检查给定的用户 ID 是否已验证我的应用程序?

发布于 2024-10-31 19:07:31 字数 75 浏览 1 评论 0原文

我正在使用 Facebook Graph API,想要检查用户是否已通过用户 ID 验证了我的 Facebook 应用程序。我该怎么做?

I'm using the Facebook Graph API and want to check if a user has authenticated my Facebook app by user ID. How do I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

天生の放荡 2024-11-07 19:07:31

您使用:

SELECT is_app_user FROM user WHERE uid=USER_ID

这应该返回:

[
  {
    "is_app_user": true
  }
]

如果用户已登录到您的应用程序。

You use:

SELECT is_app_user FROM user WHERE uid=USER_ID

This should return:

[
  {
    "is_app_user": true
  }
]

If the user has logged in to your application.

冷︶言冷语的世界 2024-11-07 19:07:31

扩展 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'];

Expanding on ifaour's answer, in PHP this query would look something like this:

<?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'];
星軌x 2024-11-07 19:07:31

在这里,您可以将多个请求一起批处理,并避免使用 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;
}

Here you can batch multiple requests together and avoid using FQL.

Assuming you have already logged into facebook and set the access token to the application access token, you can do this:

$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');

Then you can process the batch response with code like this:

$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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文