Ответ 1
ОБНОВЛЕНИЕ - это можно сделать
Итак, приложение Digg для iOS может делиться с Facebook без использования структуры учетных записей для получения прав пользователя... Они используют UIActivityViewController
и имеют сообщение появляются как "через Digg", я связался с кем-то из Digg, и они сказали мне, что это ручной процесс. У вас должно быть ваше приложение iOS, опубликованное в Apple App Store, а также ваше приложение Facebook принято и опубликовано в Facebook App Store.
Затем Facebook может вручную обработать связывание двух таким образом.
Очевидным недостатком этого является то, что UIActivityViewController
означает, что вы можете поделиться своим приложением без какой-либо интеграции с Facebook, нет необходимости в приложении для Facebook... Но чтобы получить "через ваше имя приложения", вам понадобится Facebook приложение, которое Facebook одобрит в своем собственном магазине приложений, как только все будет вживую, вам нужно будет связаться с разработчиками, чтобы связать все это.
Обратите внимание, что остальная часть моего ответа (мой предыдущий ответ) верна, решение - это ручной процесс, который Facebook может сделать для вас, ваш код iOS не должен быть затронут.
Предыдущий ответ и обходной путь
Встроенная интеграция с Facebook, на самом деле, представляет собой контроллер представления композитора. Это достигается с помощью класса SLComposeViewController
с типом сервиса SLServiceTypeFacebook
.
Этот класс предоставляет только одностороннюю связь, и, как вы заметили, вы подтверждаете наличие каких-либо стеновых сообщений, нажав кнопку "Опубликовать". Этот контроллер представления принадлежит системе iOS, а не вашему приложению. И, взаимодействуя с этим составителем контроллера, вы фактически обходите свое приложение.
Пользователям нравится делать это, потому что это дает им безопасность.
Если ваше приложение функционирует только путем более глубокой двусторонней интеграции с Facebook, вы должны использовать SLComposeViewController
(более глубокая интеграция означает, что вашему приложению нужен список ваших друзей или существующие настенные сообщения, альбомы и т.д.).
Чтобы сообщение, появившееся из вашего приложения, появилось на Facebook с помощью "через xxxx", а не "через iOS", вам необходимо взаимодействовать с Facebook через класс SLRequest
. Для этого вы также должны взаимодействовать с Account.framework
в дополнение к Social.framework
.
Он напоминает предыдущий ранее используемый IOS SDK Facebook (и все еще может его использовать) с точки зрения его настройки, вы получаете ссылку на хранилище учетных записей устройства, вы запрашиваете учетные записи Facebook и отправляете свой идентификатор приложения Facebook и массив разрешений.
Если предоставлено, вы можете затем взаимодействовать с API-интерфейсом Facebook через класс SLRequest
. Отправляя на свою стену в этой усадьбе, вы получите желаемый "через xxx".
Чтобы использовать это, ознакомьтесь с документацией для SLRequest.
Обратите внимание, что в этом случае вы несете ответственность за создание своего собственного представления.
Вы можете, конечно, вдохновить себя на собственный пользовательский интерфейс, а также посмотреть приложение iPhoto iOS, попробовать поделиться с Facebook с этим приложением, вы заметите, что он запрашивает разрешение на взаимодействие с вашей учетной записью Facebook (что-то, что не возникает при использовании SLComposeViewController
), тогда он представляет что-то очень близкое к сообщению SLComposeViewController
для публикации в Facebook.
Но если вы посмотрите ближе, вы заметите, что это не то же самое. Это также относится к Twitter и их родному приложению против собственной интеграции. У них есть своя собственная презентация, очень интересно отметить, что они используют встроенную интеграцию iOS (рамки Apple). Мы знаем это, потому что, перейдя в Настройки > Конфиденциальность > Twitter, вы можете видеть, что приложение Twitter - это авторизованное приложение, использующее учетные записи Twitter на устройстве.
То же самое касается Facebook.
Если вы не получили разрешение, у вас нет способа опубликовать ваше приложение - aka "через myApp".
Извините, что подвел вас, я также искал способ интегрировать ACAccount
в SLComposeViewController
, но не смог найти способ. Какой позор... потому что собственный пользовательский интерфейс сладок.