2013-07-05 17 views
5

Czy można znaleźć znajomych w Internecie (online, z dala lub błąd) za pomocą pakietu SDK Facebooka?Znajomość Obecność w Internecie - Facebook SDK 3

Korzystanie FQL mogłem zrobić to tak:

SELECT uid, name,pic_small,pic_big,online_presence FROM user 
    WHERE online_presence IN ('active') AND uid IN 
    (SELECT uid2 FROM friend WHERE uid1 = me())order by name 

Ale czy jest jakiś sposób, aby to zrobić w facebook SDK, mogą być za pomocą czegoś takiego:

[FBRequest requestForGraphPath:@"some/end/point/that/I/am/missing"] 

Każda pomoc mile widziana. Dzięki.

+0

mam ten sam problem tutaj – Anand

Odpowiedz

2

Przepraszam za spóźnienie, aby opublikować go tutaj ... I rozwiązał ten problem ja, tu jest moje rozwiązanie:

- (void)getFriendsOnlinePresence 
{ 

NSString* fql1 = [NSString stringWithFormat:@"SELECT uid,pic_square, name,online_presence FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) ORDER BY name"]; 
NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
           fql1, @"q", 
           nil]; 
[FBSession openActiveSessionWithAllowLoginUI:NO]; 
[FBRequestConnection startWithGraphPath:@"fql" 
          parameters:params 
          HTTPMethod:@"GET" 
         completionHandler:^(FBRequestConnection *connection, 
              id result, 
              NSError *error) { 
          if (error) { 
           NSLog(@"Error: %@", [error localizedDescription]); 
          } else { 
           NSLog(@"Result: %@", result); 
           } 
          } 
//Notify via notification center 
         }]; 

} 
0

Jeśli możesz to zrobić w FQL, to uruchomienie go w SDK jest po prostu kwestią znalezienia właściwego zapytania. Zapytanie

SELECT uid, name,pic_small,pic_big,online_presence FROM user 
    WHERE online_presence IN ('active') AND uid IN 
    (SELECT uid2 FROM friend WHERE uid1 = me()) order by name 

jest wykonywany jako graph.facebook.com/fql?q=SELECT uid, name,pic_small,pic_big,online_presence FROM user WHERE online_presence IN ('active') AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) order by name zasadzie HTTP GET /fql?q=<QUERY>

Uważam więc wystarczy ustawić ścieżkę jako fql w requestForGraphPath

FBRequest *fql = [FBRequest requestForGraphPath:@"fql"]; 
[fql.parameters setObject:@"SELECT uid, name,pic_small,pic_big,online_presence FROM user WHERE online_presence IN ('active') " 
          @"AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) order by name" 
        forKey:@"q"] 

najnowszą dokumentację choć przedstawia przykłady z startWithGraphPath pod FBRequestConnection

NSString *query = 
    @"SELECT uid, name,pic_small,pic_big,online_presence FROM user WHERE online_presence IN ('active') " 
    @"AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) order by name"; 
    // Set up the query parameter 
    NSDictionary *queryParam = @{ @"q": query }; 
    // Make the API request that uses FQL 
    [FBRequestConnection startWithGraphPath:@"/fql" 
           parameters:queryParam 
           HTTPMethod:@"GET" 
          completionHandler:^(FBRequestConnection *connection, 
               id result, 
               NSError *error) { 
     if (error) { 
      NSLog(@"Error: %@", [error localizedDescription]); 
     } else { 
      NSLog(@"Result: %@", result); 
     } 
    }]; 

Źródło: https://developers.facebook.com/docs/howtos/run-fql-queries-ios-sdk/

Powiązane problemy