Обновление статуса Facebook с помощью django

#python #django #facebook #facebook-graph-api

#python #django #Facebook #facebook-graph-api

Вопрос:

Я использовал python-social-auth для социальной аутентификации в своем приложении django. Теперь я собираюсь опубликовать статус facebook из этого приложения.

Сначала я создал приложение Facebook из https://developers.facebook.com /. Вот шаги, которые я выполнил ,

  1. Создать новое приложение
  2. Задается отображаемое имя и пространство имен. Категория выбрана как игры, затем создайте приложение.
  3. Настройки приложения -> Добавить платформу -> Веб-сайт -> url сайта = test1.com: 8000 -> сохранить изменения.
  4. Я также сделал приложение и все его функции доступными для широкой публики.

Затем я добавил ,

 SOCIAL_AUTH_FACEBOOK_KEY='****************'
SOCIAL_AUTH_FACEBOOK_SECRET='**************************'
  

и

 SOCIAL_AUTH_FACEBOOK_SCOPE = [
    'publish_actions'
]
  

чтобы settings.py .

Когда я запускаю это приложение и запускаю аутентификацию на Facebook, оно отображает следующее всплывающее окно,

введите описание изображения здесь

И когда я нажимаю кнопку воспроизведения сейчас, он успешно перенаправляется на домашнюю страницу моего приложения django и публикует мой статус в Facebook,

Вот мой код для публикации статуса facebook ,

 social_user = request.user.social_auth.filter( provider='facebook',)[0]
graph = facebook.GraphAPI(social_user.extra_data['access_token'])
graph.put_object("me", "feed", message="here is status messgae")
  

Но когда другой пользователь [кроме моей учетной записи facebook] пытается пройти проверку подлинности, это приложение отображает всплывающее окно, подобное этому ,

введите описание изображения здесь

В первом случае я успешно опубликовал свой статус, но во втором случае я [сообщение во втором всплывающем окне ясно показывает, что приложение не имеет доступа к стене пользователя.]

Это ошибка, которую я получаю во втором случае ,

 GraphAPIError at /
(#200) The user hasn't authorized the application to perform this action.
  

Мой вопрос в том, почему мое приложение не может публиковать сообщения на других стенах?

Есть ли какая-либо неправильная конфигурация (или что-то упущено), которую я сделал при создании приложения facebook?

Или что-то еще, что я должен добавить settings.py .

Комментарии:

1. Вы читали большое красное предупреждение в первом диалоговом окне? Что вам нужно отправить publish_actions, если вы хотите иметь возможность спрашивать людей, у которых нет роли в вашем приложении.

Ответ №1:

Настройки приложения в порядке. На самом деле, facebook недавно внес некоторые существенные изменения и представил версию v2.0 (подробнее об этом здесь)

Итак, с этого момента (вы даже можете проверить предупреждение в первом диалоговом окне)-

Если ваше приложение запрашивает больше, чем public_profile , email и user_friends это потребует проверки Facebook, прежде чем ваше приложение смогут использовать люди, отличные от разработчиков приложения.

Только тестировщики / разработчики приложения могут тестировать приложение с другими разрешениями, прежде чем они будут проверены facebook.

Вы можете ознакомиться с обзорной документацией для получения более подробной информации.