Пример Python-Django-PyFacebook.

Пример Python-Django-PyFacebook.

Работаю щас над одним проектом, где моя задача написать Facebook приложение. А точнее его серверную часть. Так как я это делаю впервые, то хочу собрать все полезности в одном месте. В этой статье буду публиковать все найденное инересное для выполнения этого задания. Статья будет изменяться и исправляться по мере надобности. Ну что ж, начнем :).

Как работают Facebook приложения?

  1. Пользователь делает запрос к  apps.facebook.com/yourapp/page1/
  2. Сервера Facebook перенаправляют( делают свой отдельный) этот запрос yourserver.com/page1/
  3. Вы получая эти запросы можете обращаться к Facebook API, и использовать FQL для запросов к таблицам Facebook.
  4. Вы отправляете обратно страницы, в FBML на сервера FB.
  5. FB сервера преобразовуют ваш FBML в HTML.
  6. FB сервера отсылают запрошенный HTML пользователю.

С чего начать?

  1. Перейдите на страницу http://www.facebook.com/developers/
  2. Создайте новое приложение, задав имя.
  3. Получите для вашего приложений api key, и application secret.
  4. Укажите callback url указывающий на ваш сервер.
  5. Загрузите Pyfacebook library, и сделай так что Python мог найти.Для проверки - должен работать импорты: import facebook и import facebook.djangofb
  6. Отредактируйте settings.py и добавьте настройки: FACEBOOK_API_KEY = '1673458a9d3dda38c6f885d7150da256' и FACEBOOK_SECRET_KEY = '626197caab4067524746d0c6695a53f6' с вашими значениями.
  7. Добавьте facebook.djangofb.FacebookMiddleware к MIDDLEWARE_CLASSES

Как приложения могут делать изменения?

Используя HttpRequest.REQUEST вместо HttpRequest.GET. Как в примере middleware for signed_request.

Пример создания приложения Facebook на Django

def invite_friends(request):
    #HTML escape function for invitation content.
    from cgi import escape

    facebook_uid = request.facebook.uid
    # Convert the array of friends into a comma-delimeted string.  
    exclude_ids = ",".join([str(a) for a in request.facebook.friends.getAppUsers()])

    # Prepare the invitation text that all invited users will receive.  
    content = """<fb:name uid="%s" firstnameonly="true" shownetwork="false"/>
        wants to invite you to play Online board games,
             <fb:req-choice url="%s"
     label="Put Online Gaming and Video Chat on your profile!"/>
     """ % (facebook_uid, request.facebook.get_add_url())

    invitation_content = escape(content, True)

    return render_to_response('facebook/invite_friends.fbml',
                               {'content': invitation_content, 'exclude_ids': exclude_ids })

код шаблона facebook/invite_friends.fbml

<fb:request-form action="http://apps.facebook.com/livevideochat/?skipped=1"
                 method="POST" invite="true" type="Online Games"
                 content="{{ content }}">
     <fb:multi-friend-selector max="20"
           actiontext="Here are your friends who aren't using Online Games and Live Video Chat. Invite them to play Games Online today!"
           showborder="true" rows="5" exclude_ids="{{ exclude_ids }}">
</fb:request-form>

Источник http://developers.facebook.com/docs/reference/fbml/request-form/

Следующая запись

Предыдущая запись

Связанные записи

Похожие записи

Комментарии

  1. Moonlight

    Moonlight на 26.04.2011 20:18

    Тоже недавно делал подобную штуку, только все обращения к API были вынесены на фронтенд (Facebook JavaScript SDK). И тип приложения был не FBML, а IFrame...

Пингбэки

Оповещения открыты.

Трэкбэки

URL архива

Only authorized users can post comments