Instagram API Есть ли способ узнать, заблокировал ли пользователь зарегистрированного пользователя?

Я просматриваю все конечные точки в API Instagram: https://instagram.com/developer/endpoints/#

После того, как я получу токен авторизации, я могу выполнять все операции: лайкать/изменять отношения/просматривать данные о пользователе...

Однако я вижу, что некоторые приложения на Android имеют эту дополнительную функцию: посмотреть, кто заблокировал текущего пользователя, вошедшего в систему. В API нет упоминания об этом, и когда я пытаюсь запросить данные для пользователя, вместо того, чтобы показывать is_private/blocked_you, все, что я получаю, это:

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

Что имеет смысл, так как пользователь заблокирован и никакая информация не должна возвращаться. Но в этом случае, как другие приложения получают эту информацию «Пользователь заблокировал вас»?


person Alin    schedule 27.03.2015    source источник


Ответы (1)


Я могу ошибаться, но если API Instagram работает как 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"
    }
}

Отношения выражаются с помощью следующих терминов:

outgoing_status: Ваше отношение к пользователю. Может быть «следует», «запрошено», «нет». incoming_status: отношение пользователя к вам. Может быть «отслеживается», «запрошено», «заблокировано», «нет».

Это означает, что вы не можете найти пользователей, которые заблокировали вас, но вы можете найти пользователей, заблокированных вами. С этой точки зрения, если у вас есть токены всех ваших пользователей, хранящиеся в вашей собственной базе данных, вы можете написать простой код, который будет входить в систему как пользователь, использующий эти токены, и проверять отношения с другими пользователями из вашей базы данных. Результаты вы можете сохранить в свою базу данных, использовать ее и делать обновления, скажем, в любые Х дней, недель...

Обратите внимание, что это будет работать только в том случае, если вы используете OAuth API Instagram для входа пользователей в свой собственный сервис. И да, это очень медленный метод.

person Alexander R.    schedule 27.03.2015
comment
Спасибо Александр за ответ. В моем приложении есть только один пользователь (поэтому один токен). Вот что я думаю: большинство приложений показывают, что пользователь заблокировал вас для пользователей, которые отписались от вас. Чтобы знать, что пользователь отписался, необходимо, чтобы его информация хранилась локально в приложении, потому что раньше он был подписчиком. Итак, я предполагаю следующее: если у меня есть база данных пользователей в локальной базе данных, и теперь изменение отношений возвращает код 400, это означает, что он либо заблокировал меня, либо стал приватным. - person Alin; 27.03.2015