3

requestWithMethodName新しい 3.0 Beta SDK for iOS のどこにもメソッドが見つかりません。皆さんはそれを削除しましたか? もしそうなら、どのように fql クエリを API に送信することになっていますか? それとも廃止されましたか?

4

1 に答える 1

5

以下を使用して、メソッド名でリクエストを行うことができます。

[[[FBRequest alloc] initWithSession:...
                         restMethod:... 
                         parameters:... 
                         HTTPMethod:...]
 startWithCompletionHandler:...];

ただし、次のように、FQL グラフ オブジェクトを使用して FQL クエリを作成することもできます。

FBRequest *fql = [FBRequest requestForGraphPath:@"fql"];
[fql.parameters setObject:@"SELECT uid, name, pic_square FROM user WHERE uid = me()"
                          @"OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"
                   forKey:@"q"];

[fql startWithCompletionHandler:^(FBRequestConnection *connection, 
                                  id result, 
                                  NSError *error) {
    if (result) {
        NSLog(@"result:%@", result);
    }
}];

最後に、オブジェクトで start を呼び出すのではなく、複数のリクエストをバッチ処理する場合は、次のようにFBRequest、オブジェクトを作成してFBRequestConnectionstart を呼び出す前に複数のリクエストを追加できます。

FBRequestConnection *conn = [[FBRequestConnection alloc] init];
[conn addRequest:fqlRequest1 completionHandler:^(FBRequestConnection *connection, 
                                                 id result,
                                                 NSError *error) {
    if (result) {
        NSLog(@"result:%@", result);
    }
}];

[conn addRequest:fqlRequest2 completionHandler:^(FBRequestConnection *connection,
                                                 id result,
                                                 NSError *error) {
    if (result) {
        NSLog(@"result:%@", result);
    }
}];

[conn start];

SDK は、要求をサーバーへの単一のバッチ要求にシリアル化するだけでなく、応答を解析し、一致する結果またはエラーで正しいハンドラーを呼び出します。

ノート

グラフ API または残りの API のいずれかを使用して同じ結果を得ることができる場合は、残りの API よりもグラフ API を使用することをお勧めします。古い残りの API の廃止を進めています。

于 2012-07-15T03:01:54.983 に答える