【问题标题】:Is there a way to delete users for your Facebook Application?有没有办法为您的 Facebook 应用程序删除用户?
【发布时间】:2018-10-30 06:36:13
【问题描述】:

Facebook Developer 在线文档中有测试用户的文档,但是如何删除应用程序不再显示在其应用列表中的实际用户?这是access_tokenfacebook_user_id的知识。

用于删除测试用户:

https://graph.facebook.com/893450345999?method=delete&access_token=A2ADI1YMySweBABBGrWPNwKMlubZA5ZCrQbxwhtlEd9FIQUrOVjsGD3mnIWEbUhzDz7dkuBekMFdHvjvJ9CZAU7EMSSaZBsgN60FkMCi3AAZDZD

运行测试用户链接会产生以下错误:

"error": {
      "message": "(#100) Can only call this method on valid test users for your app",
      "type": "OAuthException",
      "code": 100
   }

【问题讨论】:

    标签: facebook facebook-graph-api


    【解决方案1】:

    您寻求应用取消授权:

    您可以使用该应用的用户 access_token 向 PROFILE_ID/permissions 发出 HTTP DELETE 请求,代表用户取消对应用的授权或撤销特定的扩展权限。

    permission - 您希望撤销的权限。如果您没有指定权限,那么这将完全取消对应用程序的授权

    为了实现这个问题,请求:

    https://graph.facebook.com/me/permissions?method=delete&access_token=...
    

    一旦应用被取消授权,它就不会出现在用户的应用列表中。

    2021 年 12 月更新

    关注Requesting & Revoking Permissions的参考:

    要删除单个权限,请向/{user-id}/permissions/{permission-name} 发出DELETE 请求,传递用户访问令牌应用访问令牌

    要完全取消对应用程序的授权,请向/{user-id}/permissions 端点发出类似的请求

    【讨论】:

    • 有没有办法为所有用户执行此操作,而无需删除应用程序本身?
    • 如果我有很多权限,我是否需要遍历所有这些权限并删除所有权限才能让我的应用不再出现?
    • 如果我没有用户访问令牌怎么办?我应该使用什么令牌?
    • @FedericoSchiocchet 我已更新我的答案以提供更多详细信息。如果您没有用户访问令牌,请使用您的应用程序访问令牌撤销权限
    【解决方案2】:

    这样做:

    1. 您必须拥有用户访问令牌。
    2. 访问https://developers.facebook.com/tools/debug/accesstoken/并调试用户访问令牌。
    3. 复制应用范围内的用户 ID
    4. 通过 API 调用 HTTP DELETE 到 https://graph.facebook.com/[App-Scoped User ID]/permissions?method=delete&access_token=[YOUR-APP-ACCESS-TOKEN]

    【讨论】:

      【解决方案3】:

      当真实用户从他们的帐户中删除您的应用时,他们会从您的应用中“删除”自己,您无需执行任何操作。

      如果您想知道用户何时像这样对您的应用取消授权,您可以在应用的设置中指定一个取消授权回调 URL。如https://developers.facebook.com/docs/authentication/ 的文档中所述:

      删除应用后,我们将发送一个包含单个参数 signed_request 的 HTTP POST 请求,该参数在解码后将生成一个 JSON 对象,其中包含刚刚取消对您的应用授权的用户的 user_id。您不会在此请求中收到用户访问令牌,并且之前代表该用户颁发的所有现有用户访问令牌都将失效。

      更新:要从用户的授权应用程序中删除您自己的应用程序,请按照 https://developers.facebook.com/docs/reference/api/user/https://graph.facebook.com/[userid]/permissions?access_token=... 发出 HTTP DELETE。

      通常,Graph API 调用还支持使用额外参数 method=DELETE 执行 HTTP POST,以防 DELETE 调用不可行/不支持。

      【讨论】:

      • 我希望能够允许用户从我的网站中删除应用程序。如果您使用过 pinterest,您会在用户的编辑用户设置页面上看到他们可以在他们的网站上链接/取消链接他们的 Facebook 应用程序,而不是在 facebook.com 上。这会将 pinterest 应用程序完全从用户已安装的 facebook 应用程序列表中删除。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多