問題があり、立ち往生しています。Facebook から取得した自分の情報を iPhone から自分のサーバーに送信したいと考えています。
Server Sided Function は機能します。サンプルのキー、値、および「CocoaRestClient」というツールを試しました。
私は以下からデータを抽出しています:
NSDictionary<FBGraphUser> *user
これは私のパラメータです:
NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithObjectsAndKeys:
user.name, @"name",
user.id, @"uid",
user.first_name, @"firstname",
user.last_name, @"lastname",
[user objectForKey:@"email"], @"email",
[FBSession activeSession].accessTokenData.accessToken, @"access_token",
nil];
私の AFNetworking POST 関数:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:@"http://localhost:8888/iphonelogin" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
xCode で次のエラーが表示されます。
Error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x8b950c0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
私の推測:
NSDictionary の値に問題があるに違いないと思います。私は NSLog を実行し、次の例の値を取得しました。括弧は異なるようです。おそらくタイプキャストする必要がありますか?どういうわけか、メールの値がサーバーに保存されます...助けていただければ幸いです。
パラメータの xCode NSLog を出力します。
{"access_token" = 324234sdfdfdt345345345345435;
email = "myemail@mail.com";
firstname = John;
lastname = Doe;
name = "John Doe";
uid = 343434;}
PS: 私のサーバーでは UID が bigint であることを除いて、すべての属性は VARCHAR(255) として保存されます。
この Cocoa クライアントをテストに使用すると、すべてのエントリがテーブルに正常にポストされます。