2016-06-23 13 views
0

私はPython SDK for Facebook's Graph APIを使用してFacebookページが何回表示されたかを取得しています。私はAPI Explorerに行ってアクセストークンを取得しました。最初に、アプリケーションのドロップダウンメニュー(「右上」)から「Graph API Explorer」を選択しました。私は、このコードを実行し、私が期待したもの戻った:FacebookグラフAPIからオブジェクトの統計情報をすべて表示できないのはなぜですか

import facebook 

ACCESS_TOKEN = "**********" 

facebook_page_id = "168926019255" # https://www.facebook.com/seriouseats/ 
graph = facebook.GraphAPI(ACCESS_TOKEN) 
page = graph.get_object(facebook_page_id) 

print page 

{u'about': u'The Destination for Delicious', 
u'can_post': True, 
u'category': u'Website', 
u'checkins': 0, 
u'cover': {u'cover_id': u'10154881161274256', 
    u'id': u'10154881161274256', 
    u'offset_x': 0, 
    u'offset_y': 43, 
    u'source': u'https://scontent.xx.fbcdn.net/t31.0-0/p180x540/13391436_10154881161274256_2605145572103420621_o.jpg'}, 
u'founded': u'December 2006', 
u'has_added_app': False, 
u'id': u'168926019255', 
u'is_community_page': False, 
u'is_published': True, 
u'likes': 159050, 
u'link': u'https://www.facebook.com/seriouseats/', 
u'mission': u'Serious Eats is a site focused on celebrating and sharing food enthusiasm through recipes, dining guides, and more! Our team of expert editors and contributors are the last word on all that\u2019s delicious.', 
u'name': u'Serious Eats', 
u'parking': {u'lot': 0, u'street': 0, u'valet': 0}, 
u'talking_about_count': 3309, 
u'username': u'seriouseats', 
u'website': u'http://www.seriouseats.com', 
u'were_here_count': 0} 

私は当時APIエクスプローラに行き、私が最近作成した私の新しいFacebookアプリにアプリケーションを変更しました。私は新しいアクセストークンを生成し、それをスワップして上のコードを実行しました。 - 特にlikes属性 - 不足しているあなたが見ることができるように

{u'id': u'168926019255', u'name': u'Serious Eats'} 

、それだけでidとページのname返しますが、他の属性は:これは私が戻ってpage変数で取得応答です。

だから、私は自分のアプリケーションにオブジェクトのすべての属性を見る権限を与える必要がありますか?自分のアプリケーションID & App Secretからアクセストークンを生成しようとしましたが、同じ結果が得られます。

答えて

2

ここには2つのことがあります。

  1. facebook APIのバージョン。 最初の例では、多くの結果が得られたときに、バージョン2.2(これはfacebook python sdkのデフォルトバージョンです)を使用しています。 Facebookに新しいアプリを作成したときに、デフォルトでバージョン2.6が使用されている可能性が最も高いです。したがって、現在は2〜3つのフィールドとそれ以外の残りのフィールドだけを返します。

  2. これは、今すぐあなたに

    {'id': '168926019255', 'about': 'The Destination for Delicious', 'category': 'Website'} 
    

    を与えるあなたは確かにあなたが

は、次のコードに

page = graph.get_object(id='168926019255', fields='about, affiliation, awards, category') 

を使用することであるために頼むことができるか、バージョン2.6を使用していると仮定すると、あなたは好きなものを手に入れたい。好きなものはデフォルトのフィールドではなく "エッジ"なので、 "接続"を使ってそれらに尋ねる必要があります。これを行うには、次の操作を実行できます。

page = graph.get_connections(id='168926019255', connection_name='likes') 

は、これは今あなたにすべて好き

{'data': [{'id': '134049266672525', 'name': 'Tom Colicchio'}, {'id': '143533645671591', 'name': 'Hearth'}, {'id': '57909700259', 'name': 'Toro'}, .... 
+0

詳細な説明のために感謝します!ページが好きなユーザーの総数を取得する方法はありますか?あなたのアプローチを使用して、そのページが好きだったすべてのユーザーのリストをページ付けして追加する必要があります。また、 'get_object()'メソッドに別のパラメータを渡すことができないように見えるので、オブジェクトの他の属性を取得することをお勧めします(例えば 'founded'、' has_added_app'、mission '、' username'など)? – Abundnce10

+0

argsを使用して引数を渡すことができます。例えば、 'args = args = {" fields ":" found "、has_added_app、mission、username"} ページ= graph.get_object(id = '168926019255'、** args) ' – Avi

+0

好きに関しては、この '168926019255_10154922404214256?fields = likes 'を使って、Facebookの投稿ごとにまとめられます。'' summary = true ''であり、この形式で' 'posts = graph.get_connections(id =' 168926019255_10154922404214256 '、connection_name =' likes '、summary =' true ')を使うと' '要約':{' has_liked ':False、' can_like ':True、' total_count ':9}'を呼び出してからページングします。 – Avi

関連する問題