2011-03-25 2 views
2

처럼 :페이스 북 API : 코멘트 데이터 덤프/여기 내 코드 데이터

string code = Request.QueryString["code"]; 
string appId = "x"; 
string appSecret = "x"; 

if (code == "" || code == null) 
{ 
    //request for authentication 
    Response.Redirect("https://graph.facebook.com/oauth/authorize?client_id=" + appId + "&redirect_uri=http://localhost:62543/&scope=email,read_stream"); 
} 
else 
{ 
    var fb = new MyFB(); 
    fb.ApplicationSecret = appSecret; 
    fb.ApplicationID = appId; 
    string accessToken = fb.GetAccessToken(code); 
    fb.AccessToken = accessToken; 


    var fbc = new FacebookClient(accessToken); 

    dynamic streams = fbc.Query("select post_id from stream where permalink = 'http://www.facebook.com/kevin.clough/posts/882439437244'"); 
    Response.Write(streams.Count); 

    dynamic results = fbc.Query("select comments, likes from Post where id = " + streams.post_id); 

    foreach (dynamic comment in results.comments) 
    { 
     Response.Write(comment.from.name + ", " + comment.message + "<br/>"); 
    } 

} 

세션 소유자에서와 다른 viewer_id와 스트림 테이블을 조회 할 때 사용할 수 없습니다 "A 세션이 오류를 얻기 . "

이 세션에서 내 데이터를 볼 수 있도록 권한을 부여하려면 어떻게해야합니까?

+0

FQL 동안 오류가 있습니까? –

답변

2

첫 번째 문제점은 쿼리가 유효하지 않다는 것입니다. 당신은이 : 페이스 북의 문서 here

select post_id from stream 
where permalink = 'http://www.facebook.com/kevin.clough/posts/882439437244' 

는 만 열을 사용하여 스트림 테이블 APP_ID, SOURCE_ID, filter_key 및 XID, POST_ID 조회 할 수 있습니다.

그래서 당신은 (예를 들어 포스트 ID '19292868552_118464504835613'를 사용)이 귀하의 첫 번째 쿼리를 변경해야합니다 :

select post_id from stream where post_id = '19292868552_118464504835613' 

을 다른 방법으로, 게시물의 ID를 사용하여 그래프와 같은 일을 할 수있는 :

dyanmic post1 = fbc.Get("19292868552_118464504835613"); 

두 번째 쿼리는 주로 존재하지 않는 테이블을 쿼리하기 때문에 잘못되었습니다.

select comments, likes from Post where id = " + streams.post_id 

FQL 테이블 'Post'가 없습니다. 이 목표가 무엇인지 잘 모르겠다.하지만 좋아하는 것과 의견을 얻고 싶다면 Graph API를 사용하는 것이 더 쉬울 것이라고 생각한다.

댓글 :

dynamic comments = fbc.Get("19292868552_118464504835613/comments"); 

추천했습니다 : 여기

dynamic likes = fbc.Get("19292868552_118464504835613/likes"); 

는 포스트 그래프 API에 대한 페이스 북의 문서는 다음과 같습니다 http://developers.facebook.com/docs/reference/api/post/

편집 :

a의 스트림 항목을 확인하려면 사용자는 피드를 읽고 싶을 것입니다. 그래프 API를 사용하여이 작업을 수행 할 수도 있습니다.

dynamic feed = fbc.Get("me/feed"); 
foreach (dynamic post in feed.data) { 
    var post_id = post.id; 
} 

이 게시물은 사용자의 최신 게시물을 제공합니다. 여기에서 루프를 통해 세부 정보를 얻으려는 항목을 찾을 수 있습니다.

+0

스트림 항목의 post_id가 무엇인지 어떻게 결정합니까? – KClough

+0

게시물을 얻기 위해 피드를 읽는 방법을 보여주기 위해 답변을 업데이트했습니다. –

+0

아, 내가 한 일을 보았는데, 이것이 API의 한계 일 수 있다고 생각했습니다. 이것은 지금 의미가 있습니다.이 문제를 해결해 주셔서 감사합니다. – KClough