Instagram API 有没有办法知道用户是否屏蔽了已登录的用户?

Instagram API Is there a way of knowing if a user blocked logged user?

我正在查看 Instagram api 上的所有端点:https://instagram.com/developer/endpoints/#

获得授权令牌后,我可以进行所有操作:like/change relationship/view 用户详细信息...

不过,我看到 android 上的一些应用程序有这个额外的功能:查看谁阻止了当前登录的用户。 API 上没有提到这个,当我尝试查询用户的详细信息时,我得到的不是显示 is_private/blocked_you,而是:

{
        "error_type": "APINotAllowedError",
        "code": 400,
        "error_message": "you cannot view this resource"
    }

这是有道理的,因为用户已被阻止,不应返回任何信息。但在这种情况下,其他应用程序如何获取此 "User has blocked you" 信息?

我可能是错的,但如果 Instagram 的 API 像 Facebook 一样工作,我可以考虑这个想法。

你有 API 来找到你自己与用户的关系。

https://api.instagram.com/v1/users/{user-id}/relationship?

access_token=ACCESS-TOKEN
{
    "meta": {
        "code": 200
    }, 
    "data": {
        "outgoing_status": "none", 
        "incoming_status": "requested_by"
    }
}

Relationships are expressed using the following terms:

outgoing_status: Your relationship to the user. Can be "follows", "requested", "none". incoming_status: A user's relationship to you. Can be "followed_by", "requested_by", "blocked_by_you", "none".

这意味着你找不到屏蔽你的用户,但你可以找到被你屏蔽的用户。从这个角度来看,如果您将所有用户令牌都存储在自己的数据库中,则可以编写简单的代码,以使用此令牌的用户身份登录,并检查与数据库中其他用户的关系。您可以将结果保存到自己的数据库中,使用它,并进行更新,比如说,任何 X 天、数周...

请注意,只有当您使用 Instagram 的 OAuth API 将用户登录到您自己的服务时,这才会起作用。是的,这是一个非常慢的方法。