3

Google Places API を使用して、現在地周辺の場所を取得しようとしています。

以下は、場所検索の URL をヒットするためのコードです。

NSString *URL = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&sensor=true&key=0dp-j3dkCU_YUb97RHcbL5shmRrJ5R2y4bYz1Vw"];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:URL]
                                                           cachePolicy: NSURLRequestReloadIgnoringLocalCacheData
                                                       timeoutInterval: 4];
[request setValue:@"application/json" forHTTPHeaderField:@"accept"];
NSObject *id1 = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

これにより、JSON 形式で次の応答が得られます。

{
  "html_attributions" : [],
  "results" : [],
  "status" : "REQUEST_DENIED"
}

Google Places API を検索すると、「REQUEST_DENIED」の一般的な原因はセンサーパラメーターの値が正しくないことです。しかし、私の場合、それも正しいと提供しています。

どこが間違っているのでしょうか??

繰り返しますが、私が使用している APIKey は、アプリが Android、iPhone、および BlackBerry で開発されるのに一般的です。それは有効ですか?または、別の APIKey (iPhone アプリ固有) が必要ですか? もう 1 つの質問は、3 つのプラットフォームすべてで同じキーを使用できますか??

4

2 に答える 2

7

あなたの URL を取得し、動作することがわかっているキーに置き換えたところ、期待どおりの結果が得られました。一見したところ、キーを間違ってコピーして貼り付けたか、API コンソールでこのキーが関連付けられているプロジェクトの Places API を有効にしていないと思います。

プロジェクトごとに異なるサービスを有効にできることに注意することが重要です。Places API を使用するプロジェクトごとに、手動で Places API を有効にする必要があります。コンソールで API が有効になっており、キーが正確にコピーされていることを確認できますか?

于 2012-01-12T18:35:27.030 に答える
0

このエラー メッセージは、必要なパラメーターが不足している場合にも表示されることがあります。

たとえば/autocomplete、Places API のエンドポイントを使用して同様の問題が発生しました。

https://maps.googleapis.com/maps/api/place/autocomplete/json?key=XXXXXXXXXXXXXXXXXX&input=Sanにリクエストを送信すると、次のようなレスポンスが返ってきました:

{
   "predictions" : [],
   "status" : "REQUEST_DENIED"
}

パーミッションの問題のように見えますが (少なくとも私には)、必要なsensorパラメーターが単に不足していたことがわかりました。

于 2014-03-13T19:04:44.093 に答える