Приложение Facebook, размещенное на Google App Engine - PullRequest
3 голосов
/ 05 января 2012

Я новичок в приложениях Facebook, у меня уже есть приложение, работающее на GAE (с использованием Python). Я хочу интегрировать его с Facebook, чтобы иметь доступ к некоторым данным пользователей, чтобы помочь мне персонализировать приложение (такие как понравившиеся страницы, интересы, откуда они и т. Д.). А также, чтобы поделиться результатами приложения, которые будут видны друзьям.

Я думал, что выберу опцию приложения Facebook на https://developers.facebook.com/

Я не знаю, с чего начать, есть некоторые учебные пособия (большинство из них очень старые, некоторые используют сценарии, которые устарели, поэтому это немного беспокоит), и есть FBML ... и я подумал, что, возможно, Я могу получить те же данные, используя только вход в Facebook, а затем использовать FQL для доступа к этим данным.

И я не знаю, застряну ли я с этим новым ограничением https (Facebook говорит, что по состоянию на октябрь 2011 года требуется SSL-сертификат).

Итак, суть ... с чего мне начать?

Ответы [ 3 ]

3 голосов
/ 09 января 2012

Вот и мы:

По этой ссылке можно скачать: https://github.com/jgorset/facepy/tree/master/facepy:

из загрузок, у вас будет:
signed_request.py для анализа подписанного запроса, который будет опубликован на вашем Facebook URL холста: https://apps.facebook.com/myapp в POST метод

и graph_api.py для выполнения операции на graphapi https://developers.facebook.com/docs/reference/api/

примечание: вы будете включать access_token из файлов cookie, написанных Facebook js sdk.
для fb js sdk смотрите этот ответ: https://stackoverflow.com/a/8625873/492258 части javascript

на вашей странице указателя:

fb_app_secret='abcd...'
fb_app_id = 123345
def index(request):
    if request.POST:
        signed_request_param = request.POST.get('signed_request)        
        if signed_request_param:  
            #signed_request.py 
            signed_request_dic = signed_request.parse_signed_request(signed_request_param, fb_app_secret)
             if signed_request_dic:
                if signed_request_dic.has_key('user_id'): 
                    fb_uid = signed_request_dic['user_id']
                    #you got your man that is previously authorized your fb app : mypp

для последовательных звонков, вы будете использовать куки, которые я упоминал выше:

def my_page(request):
    my_dict = None
    my_dict = signed_request.get_user_from_cookie(request.COOOKIES, fb_app_id, fb_app_secret)
    if my_dict:
        if my_dict.has_key('uid'):            
            fb_uid = my_dict['uid']
            fb_uid = int(fb_uid)
            #you got your registered user again.

Для регистрации проще всего сделать из fb js sdk, уже упоминавшегося

#finally for SSL, in your app.ymal:

- url: .*
  script: django_bootstrap.py
  secure: optional 

Не забудьте установить P3P для Internet Explorer, проблема с файлами cookie iframre:

def my_page(request):
    ....
    response = render_to_response('mypage.html', view_params )
    response["P3P"] = 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'   
    return response 
2 голосов
/ 06 января 2012

Вам необходимо аутентифицировать ваше серверное приложение (GAE) на Facebook: вам нужно реализовать поток аутентификации на стороне сервера .

См. LeanEngine (с открытым исходным кодом) для примера реализации: классы аутентификации сервера .

Когда вы пройдете аутентификацию и получите токен FB пользователя, вы можете использовать FB Graph API для получения всех видов данных.

0 голосов
/ 05 января 2012
  1. Купите сертификат SSL для своего веб-сервера, чтобы вы могли соответствовать новым правилам.
  2. Создайте / настройте свое приложение, чтобы получить его идентификатор и секрет.
  3. Изучите Javascript SDK, по моему скромному мнению, его проще всего реализовать.
  4. Изучите API Graph и узнайте об объектах и ​​их свойствах, а также их связях.
  5. Вы можете поиграть с JS SDK здесь: https://developers.facebook.com/tools/console/ и График здесь: https://developers.facebook.com/tools/explorer
  6. Медленно вводите код на свою страницу на своем веб-сервере. Сначала включите аутентификацию, а затем переходите к получению основной пользовательской информации.
...