私は MQL、Freebase、および Google API を初めて使用することから始めましょう。
Google API Objective-C クライアントを使用して Freebase から結果を取得しようとしていますが、クラスを生成せずに API を使用する例や情報が見つかりません。
このページを見つけましたhttp://code.google.com/p/google-api-objectivec-client/wiki/Introduction
しかし、「生成されたクラスなしで API を使用する」セクションでは、これらのクエリの作成に関する関連情報は得られず、含まれている例はすべて生成されたクラスです。
これまでのところ、最初に RPC URL ( https://www.googleapis.com/freebaseだと思います) を使用して GTLService オブジェクトを作成し、API バージョン (サンドボックス環境の v1sandbox) を設定する必要があることがわかりました。 、API キー (この場合は kGoogleAPIKey) を設定します。
GTLService * service = [[GTLService alloc] init];
service.rpcURL = [NSURL URLWithString:@"https://www.googleapis.com/freebase"];
service.apiVersion = @"v1sandbox";
service.APIKey = kGoogleAPIKey;
終わり!素晴らしい、問題ありません。
次の部分は、私が立ち往生しているところです。私の質問は、Google API Objective-C クライアントを使用して MQL クエリを作成し、Freebase から結果を取得するにはどうすればよいですか?
上記のリンクの「オブジェクトとクエリ」セクションでは、クエリを作成して実行する必要があると記載されていますが、どこに MQL クエリを含めればよいでしょうか?
// queryWithMethodName: methodName is the RPC method name to use
GTLQuery * query = [GTLQuery queryWithMethodName:@"mqlread"]; // Not sure if this is correct
GTLServiceTicket * ticket = [service executeQuery:query completionHandler:^(GTLServiceTicket *ticket, id object, NSError *error) {
NSArray * items = [object items];
NSLog(@"%@", [items description]);
// Do something with items.
}];
参考までに、Freebase API の URL は次のとおりです。
https://www.googleapis.com/freebase/v1/mqlread?query={}
そしてMQLクエリは
[{
"id": null,
"name": null,
"type": "/travel/travel_destination",
"/travel/travel_destination/tourist_attractions": [{
"id": null,
"name": null
}],
"/location/location/containedby": [{
"name": "California"
}]
}]
助けや正しい方向へのポイントさえあれば、本当に感謝しています!