В моем последнем проекте было (было) требование, чтобы пользователь приглашал своих друзей в свою онлайн-службу. Я обнаружил, что по состоянию на апрель 2015 года с новым API Facebook Graph версии 2.0+ вы не можете фактически получить список друзей для пользователя, если эти друзья уже не являются подписчиками вашего приложения.
Сценарий:
Мое приложение — это веб-служба, которая позволяет пользователям совместно работать над исследовательской работой в частной онлайн-группе. Пользователь должен
- просмотреть список их друзей,
- установить разрешения, которые их друг будет иметь в группе, и
- отправьте им приглашение присоединиться как к сервису, так и к конкретной группе. (с использованием уникальной одноразовой ссылки, привязанной к каждому получателю)
Пользователь (в идеале) получит приглашение с конкретной ссылкой, чтобы он не просто стал подписчиком указанного онлайн-приложения, но специально присоединился к группе, в которую он был приглашен (т. тип приглашения).
Ожидание:
Пользователю все равно, является ли его друг уже участником «MyApp.com». Они рассчитывают просто найти своих друзей, как они это делают сегодня, со своего телефона, когда они подключат его к Facebook (делает доступными все контакты, независимо от того, подключили ли эти друзья свой Facebook к своему телефону, соответственно). Точно так же сравните приглашение участников с вашими документами Google, например: найдите свой контакт, установите разрешение, отправьте приглашение - так просто. Сегодня пользователи требуют такой простоты UX и не различают и не заботятся о том, имеют ли они дело с электронной почтой, контактами в Facebook, Twitter и т. д.
Проблема:
Весь смысл социальной сети в том, чтобы быть социальным. Если Graph API позволяет моему приложению получать доступ только к друзьям, которые являются УЖЕ пользователями моего приложения, это полностью сводит на нет всю цель — он отрезает моего пользователя на коленях, убивает UX, больше нет возможности на самом деле связаться их друзей. Насколько я понимаю, Facebook внес это изменение, чтобы разработчики не рассылали пользователям спам, и я понимаю это и полностью поддерживаю это. ОДНАКО, моя компания и мое приложение не пытаются приглашать друзей для своих собственных целей, это ПОЛЬЗОВАТЕЛЬ и ИХ СОБСТВЕННЫЕ друзья, к которым ОНИ имеют право доступа и общения для своих целей (или так вы думаете ). Помимо просто списка друзей, даже если бы он у меня был, я думаю, что есть дополнительные препятствия и ограничения при публикации сообщений друзьям, даже личных (не на стене) сообщений, что опять же было бы антисоциальным.
Вопрос:
Правильно ли я понимаю ограничения Facebook, и если да, то как это обойти? Я был бы согласен, если бы такой API был заблокирован, пока вы не пройдете проверку, которая докажет, что вы не рассылаете спам пользователям, но я не видел такой возможности.
Facebook якобы отдает приоритет пользователям, а не разработчикам, и эти изменения были внесены потому что, если пользователю не нравится конфиденциальность (не спамьте моим друзьям), то он больше не будет пользователем, и это, очевидно, влияет на разработчиков и Facebook. Хорошо, но разве они не понимали, что, заблокировав его, эта крайность просто убила UX для пользователя в законных сценариях? И, по моему первоначальному мнению, не просто незначительное, а первостепенное: результатом буквально является то, что 30 апреля 2015 года Facebook стал антисоциальным. Конечно, это не соответствует их миссии. Наверняка есть лучший подход.