2016-05-30 4 views
0

Ich kann nicht herausfinden, wie fan_count von einer Seite zu bekommen. habe ich immer diesen Fehlerpython facebook-sdk fan_count ausgabe

Traceback (most recent call last): 
    File "./facebook_api.py", line 37, in <module> 
facebook_graph.get_object('somepublicpage')['fan_count'] 
KeyError: 'fan_count' 

Das Objekt nur id/name enthält, und ich kann nicht herausfinden, wie man mehr Berechtigungen geben, um die ‚fan_count‘ Daten zu erhalten.

Hier ist der Code ich benutze:

import facebook 
import urllib 
import urlparse 
import subprocess 
import warnings 


warnings.filterwarnings('ignore', category=DeprecationWarning) 


oauth_args = dict(client_id = FACEBOOK_APP_ID, 
       client_secret = FACEBOOK_APP_SECRET, 
       grant_type = 'client_credentials') 
oauth_curl_cmd = ['curl', 
       'https://graph.facebook.com/oauth/access_token?' +  urllib.urlencode(oauth_args)] 
oauth_response = subprocess.Popen(oauth_curl_cmd, 
           stdout = subprocess.PIPE, 
           stderr = subprocess.PIPE).communicate()[0] 

try: 
    oauth_access_token = urlparse.parse_qs(str(oauth_response))['access_token'][0] 
except KeyError: 
    print('Unable to grab an access token!') 
exit() 

print oauth_access_token 
facebook_graph = facebook.GraphAPI(oauth_access_token) 
print facebook_graph.get_object(PROFILE_ID)['fan_count'] 

Antwort

1

Seit v2.4 der Graph API, müssen Sie die Felder, die Sie bekommen zurückgegeben werden soll angeben. Dies wäre der richtige API-Aufruf sein:

/{page-id}?fields=name,fan_count

It "deklarative Fields" genannt wird.

+0

Danke! Es klappt! –