Как получить (и использовать) расширенные разрешения в Facebook с помощью Python/Django

StackOverflow https://stackoverflow.com/questions/1967438

Вопрос

Я пытаюсь написать простое приложение, которое позволит пользователю предоставить моему коду разрешение на запись в поток Facebook ее страницы.Насколько я понимаю, это должно быть так же просто, как:

  1. Попросите пользователя нажать кнопку, которая откроет всплывающее окно со страницей в моем приложении Facebook.
  2. На этой странице они нажимают на что-то, что дает поток_публикации моему приложению и назначает это разрешение своей странице.
  3. Окно закрывается, и теперь у меня есть вся информация, необходимая для запуска сценария в cron, чтобы отправить данные в поток этой страницы.

Я читаю вики несколько дней.Примечания к pyfacebook устарели как минимум на год, и люди указали мне на социальный автор приложение для Django, которое выглядит столь же устаревшим и ориентировано на пользователей, а не на их страницы.Я даже не могу сделать №1, не говоря уже о №2 и 3.

Если бы кто-нибудь мог показать мне, как использовать Django/Python для запроса/получения разрешения на запись в поток Facebook, это было бы отличным началом.

Любая помощь будет принята с благодарностью.

Это было полезно?

Решение 2

После долгих усилий я, похоже, решил все свои проблемы в Facebookland:

  1. Оказывается, заставить пользователя нажать кнопку для предоставления разрешений так же просто, как и сказал Кайо Ромао.Однако со своей стороны я обнаружил, что направить их на ссылку в настольном приложении Facebook было намного проще и надежнее.
  2. Используя этот метод ссылки, Facebook позволяет вам указать enable_profile_selector=1 который обеспечит создание списка страниц, из которого пользователь может выбрать, какие страницы (если таковые имеются) предоставят эти разрешения.
  3. Хотя для этого Фейсбук полностью сломан.В то время как в № 2 они позволяют пользователю выбирать страницу для предоставления разрешений, они не передают эту информацию в приложение либо посредством POST, либо в заголовках.Его просто нет.Вместо этого вам придется проделать ужасный трюк с FQL и задать несколько дополнительных вопросов пользователю, чтобы все заработало.

В любом случае, я подробно все это в моем блоге если кому интересно.Спасибо за вашу помощь!

Другие советы

Вы посмотрели минифб?Их страница примеров показывает практически все, что вам нужно знать, чтобы запросить авторизацию и получить сеансовый ключ.(Так же страница github для pyfacebook показывает, что библиотека еще жива)

Итак, для вашего сценария вам понадобится:

  1. Запросите разрешение «stream_publish».Есть некоторые способы чтобы это сделать, но я бы выбрал самый простой вариант: отправка формы (обратите внимание, я никогда не создавал приложение для Facebook, возможно, я ошибаюсь, полагая, что этот подход самый простой :-)
  2. Используйте приложение как обычно:вызовите методы API, используя user_id пользователя, который авторизовал ваше приложение (вам придется сохранить его), и, поскольку вы были авторизованы, это не должно привести к сбою.

Для этого добавьте в свой шаблон эту форму:

<form promptpermission="publish_stream">
<input type="submit" value="Allow Publish Stream">
</form>

Кстати, спасибо разработчикам Facebook.Очень хорошая официальная документация.

РЕДАКТИРОВАТЬ:Мне пока не разрешено комментировать, поэтому:Если вы столкнулись с проблемами получающий юид, проверь этот вопрос и ссылки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top