2011-11-10 12 views
2

私はコメントを反復するFacebookのアプリを書いています。私はからコメントを得ることができる方法があるかどうFacebookのリレーションシップのステータスの変更のコメント

$posts = $facebook->api('/me/posts/?token='.$session['access_token'],'GET',$params); 

私が思っていた:私は、ユーザーの投稿を取得することができます同様に

$facebook = new Facebook(array(
    'appId' => APP_ID, 
    'secret' => APP_SECRET, 
)); 
$statuses = $facebook->api('/me/statuses/?token='.$session['access_token'],'GET',$params); 


私は、ユーザーのステータスとそれらのコメントを得ることができますユーザーの関係が変化

(ユーザーが関係であることに単一であることから行ってきました)

答えて

4

これらのリレーションシップのステータスの変更は現在Facebook APIを介して利用できないため、アタッチされているコメントもFacebook APIを介して利用できません。これをAPI経由で利用できるようにすることは何百回も要求されていますが、なぜ彼らはそれを持っていないのか分かりません。

3

この情報にアクセスできます。関係状況の更新は、user_relationshipsread_streamの権限で確認できます。あなたはその結果を解析する必要がありますが、正確な話(および関連コメント)を抽出し、関係の更新は次のようになりますするには:

{ 
    "id": "10000xxxxxxxxxx_2yyyyyyyyyy", 
    "from": { 
    "name": "Foo Bar", 
    "id": "10000xxxxxxxxxx" 
    }, 
    "story": "Foo Bar went from being \"in a relationship\" to \"single.\"", 
    "story_tags": { 
    "0": [ 
     { 
     "id": 10000xxxxxxxxxxx, 
     "name": "Foo Bar", 
     "offset": 0, 
     "length": 9, 
     "type": "user" 
     } 
    ] 
    }, 
    "actions": [ 
    { 
     "name": "Comment", 
     "link": "http://www.facebook.com/10000xxxxxxxxxx/posts/2yyyyyyyyyy" 
    }, 
    { 
     "name": "Like", 
     "link": "http://www.facebook.com/10000xxxxxxxxxx/posts/2yyyyyyyyyy" 
    } 
    ], 
    "type": "status", 
    "created_time": "2012-05-05T07:36:32+0000", 
    "updated_time": "2012-05-05T07:36:32+0000", 
    "comments": { 
    "data": [ 
     { 
     "id": "10000xxxxxxxxxx_2yyyyyyyyyyy_7zzzzz", 
     "from": { 
      "name": "Foo Bar", 
      "id": "10000xxxxxxxxxx" 
     }, 
     "message": "YaY", 
     "created_time": "2012-05-05T07:45:31+0000" 
     } 
    ], 
    "count": 1 
    } 
}, 

物語に関係する2人のユーザーがあります(たとえば:XXXがありますYYYとの関係で)、'story_tags'フィールドには、他のユーザーのIDも含むタグがあります。

私は、離婚、離婚、未亡人(わからない)の更新はないと思います。

その他の関係の更新は以下のように(網羅的ではない)が考えられますので、アップデートを抽出するために

Alice is in a relationship with Bob and it's complicated. 

Alice is in an open relationship with Bob. 

Alice is single. 

、二つの条件があるように持って会っ:フィールド'story'が存在する必要があり、それは、キーワードの関係のいずれかが含まれている必要があります、独身、婚約、または結婚した。

ストーリー/投稿IDを取得したら、簡単にコメントを抽出できます。

APIコール:

https://graph.facebook.com/me_or_id/feed 

https://graph.facebook.com/me_or_id/posts 

APIコール:https://graph.facebook.com/me_or_id/statusesuser_statususer_relationship_details権限で、望ましい結果が得られませんでした。

AFAIKこれは現時点では唯一の方法です。

編集:FQL方法:FQLに

我々はstream tableを照会することができます。文書では、各投稿は、自動生成された投稿、すなわちユーザによって作られていない、例えば友人になっているユーザ、または関係の変更の場合にはヌルでない記述フィールドを有することが言及されている。他の投稿には、メッセージフィールド(およびnullの説明フィールド)があります。この記述フィールドは、グラフapiメソッドのstoryフィールドに似ています。そのような自動生成された投稿の文書には記載されていないtypeが9に設定されます(タイプの説明はタイプ9にはありません)。とにかく、これらの追加条件で制限付きのクエリを作成し、正しいデータを取得することができます。これは、他のストーリーを削除するために解析する必要がありますが、少なくとも解析するデータは少なくなります。

問合せ:

SELECT post_id, type, description, comments FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0 AND type = 9 

あなたは前に述べたキーワードのために再び説明フィールドを解析する必要があります。

注:何らかの理由でこの1つのクエリでコメントを取得できませんでした(コメント配列は常に空でした)が、クエリ結果からpost_idというグラフAPIを呼び出したときにコメントが表示されました。

+0

@nickbこれは私が考えている瞬間の唯一の方法です –

+0

ありがとうございました!しかし、これをユーザーのストリームから解析する必要があるため、FQLを使用してこれらの投稿を直接照会することは可能ですか? – nickb

+0

@nickb fqlで更新された答えを確認します。 –

関連する問題