2012-07-16 12 views
39

Ok, więc googled wokół, znalazłem wątki tutaj na stackoverflow i Sprawdziłem oficjalny Facebook wiki i .. a co nie ..Python - Facebook API - Potrzebujesz pracy przykład

Mam nadzieję, że jeden z was siedzi na przykładowym kodzie API Facebooka dla Pythona. To, co mam tak daleko i wszystko, co się ma „Nieprawidłowy podpis” poprzez PyFacebook który wydaje się być martwy projekt:

from facebook import Facebook 

api_key = '123456789______' 
secret = '<proper secret key>' 
OTK = 'XXXXX' # <-- You get this from: https://www.facebook.com/code_gen.php?v=1.0&api_key=123456789______ 
long_term_key = None 

fb = Facebook(api_key, secret) 

def generate_session_from_onetime_code(fb, code): 
    fb.auth_token = code 
    return fb.auth.getSession() 
if not long_term_key: 
    long_term_key = generate_session_from_onetime_code(fb, OTK)['session_key'] 
    print 'Replace None with this in the .py file for long_term_key:' 
    print long_term_key 

fb.session_key = long_term_key 
fb.uid = 000000001 # <-- Your user-id 
fb.signature = api_key # <-- This doesn't work at all, MD5 of what? 
#fb.validate_signature(fb) # <-- doesn't work either, prob need to pass MD5 handle? 
print fb.friends.get() # <-- Generates "Invalid Signature" 

„all” chcę, to aby pobrać mojej listy znajomych na teraz , Jeśli istnieje lepszy interfejs API, kieruj mnie we właściwym kierunku, ale Facebook oficjalnie oświadczył, że ich własny Python SDK nie działa, a pyfacebook prawie działa dla mnie, ale nie całkiem ..

Proszę o pomoc.

+1

Oto poradnik, który pokazuje krok po kroku jak korzystać z Pythona Social Auth zalogować się do Facebook, Google i Twitter: http://www.artandlogic.com/blog/2014/04/tutorial-adding-facebooktwittergoogle-authentication-to-a-django-application/ – orlenko

+1

Wypróbuj to [fb 0.2.0.] (https://pypi.python.org/pypi/fb/ 0.2.0) Lekki, ale bardzo obszerny facebook python sdk ze szczegółowym wyjaśnieniem, jak do –

Odpowiedz

65

Urządzenie unofficial fork of the python sdk nadal działa dobrze dla mnie.

Aby pobrać znajomym wygenerować token dostępu tutaj: https://developers.facebook.com/tools/access_token/

Ograniczenia:

  • Użytkownik tokenu dostępu z uprawnieniami user_friends jest wymagany do oglądania bieżącej osoby za przyjaciół.
  • Spowoduje to tylko zwrot wszystkich znajomych, którzy użyli (przez Facebook Login) aplikację, która wysłała żądanie.
  • Jeśli znajomy danej osoby odrzuci zezwolenie user_friends, ten znajomy nie pojawi się na liście przyjaciół tej osoby.

Kod

import facebook 

token = 'your token' 

graph = facebook.GraphAPI(token) 
profile = graph.get_object("me") 
friends = graph.get_connections("me", "friends") 

friend_list = [friend['name'] for friend in friends['data']] 

print friend_list 
+1

Dziękuję! Działa to jak szwajcarski mechanizm zegarowy! – Torxed

+0

Użyłem tego kodu i przyjaciele z Facebooka są sprowadzani, ale nie wszyscy przychodzą. najprawdopodobniej znajomi bez zdjęcia profilowego nie są pobierani. Czemu? –

+3

To się nazywa wyniki stronicowane, coś, od czego zaczęło się po opublikowaniu tego pytania. Każdy wynik wyszukiwania jest "stronicowany", co oznacza, że ​​otrzymujesz 1-100 wyników z 250, następne pobieranie to 101-200, następnie 201-250. – Torxed

Powiązane problemy