【问题标题】:How to get all the user IDs of people who are using your Facebook application如何获取使用 Facebook 应用程序的用户的所有用户 ID
【发布时间】:2011-01-23 22:07:04
【问题描述】:

有没有办法获取所有使用您的 Facebook 应用程序的人的用户 ID?

【问题讨论】:

    标签: facebook


    【解决方案1】:

    进行广泛的研究后,我得出结论 没有办法做到这一点

    我发现了什么:
    一个名为 friends.getAppUsers 的旧 REST API,它获取授权应用程序的用户朋友的所有 ID。

    我希望我找到了什么:
    看完authentication document中的App Login部分:

    除了用户登录,Facebook 平台支持App Login使用 OAuth 2.0 客户端凭据流。 应用程序登录允许您采取各种 您的应用的管理操作, 例如检索 Insights 数据或 批准请求。

    我认为application 对象会有一个直接的方法(类似于accounts):

    $facebook->api("/APP_ID/users");
    

    但我错了。然后随着insights 功能的引入,令我震惊的是您只能获得count 的用户ID!

    你可以做什么:
    一旦用户授权您的应用程序,并且如果您的应用程序已经有用户(很可能是这种情况),请立即将用户 ID 存储在您的数据库中,检查您是否有每个用户在您的数据库中与您的应用程序交互的记录......这个这样,您将立即获得活跃用户的用户 ID。

    【讨论】:

    • 是的,这似乎是将其存储在额外数据库中的最佳解决方案。但我认为这会很好..不存储用户数据。因此您也只能从事件所有者/创建者内容中获取一个 uid。事件也显示了他们两个。
    【解决方案2】:

    再多说一点 - 我通过基​​本的 Graph API 搜索找到了很多我正在寻找的用户 ID,然后检查它们在我的应用中是否有效。

    在此处搜索电子邮件地址或用户名:- https://developers.facebook.com/tools/explorer?method=GET

    QUERY: https://graph.facebook.com/search?q=user@email.com&type=user

    如果你得到一个或多个匹配项,你可以在同一个资源管理器的 FQL 查询按钮上检查它是否有效:-

    SELECT uid FROM user WHERE uid = *USER_ID_TO_SEARCH* AND is_app_user = 1
    

    如果它显示为 uid,那么你很好 - 它们是有效的。这帮助我找到了我需要的东西(当我在注册时没有获得我的一些应用用户信息时)。

    【讨论】:

    • 我不知道如何从图形 API 资源管理器中搜索电子邮件。你使用了什么语法?我试过 'SELECT name FROM user where contact_email = email@gmail.com' 但它似乎不喜欢电子邮件
    • 那个搜索在新的api中不起作用(3)没有type=user
    【解决方案3】:
    GET /v2.10/{app-id}/accounts
    

    您将获得该应用程序的所有帐户

    【讨论】:

    • 这将为您提供应用测试帐户
    最近更新 更多