2012-09-05 17 views
5

मैंने किया है किस्थिति "REQUEST_DENIED" गूगल से डेटा प्राप्त करने में हो रही के बाद स्थानों एपीआई

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://maps.googleapis.com/maps/api/place/search/json?location=30.722322,76.76126&radius=500&types=food&sensor=true&key=any_apiKey"]]; 

    NSURLResponse *response; 
    NSError *error; 
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    NSString *strResponse = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
    NSLog(@"%@",strResponse); 

    SBJSON *sbJason = [[SBJSON alloc] init]; 
    NSMutableDictionary *getPlaceList = [sbJason objectWithString:strResponse]; 

// लेकिन मैं हो रही है इस-

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

** वहाँ API कुंजी के साथ किसी भी समस्या है मैंने Google मानचित्र द्वारा दी गई एपीआई कुंजी लिखी है। वहाँ api कुंजी या क्या कृपया मुझे यहाँ बता है link of google api

+0

क्या आप वास्तव में अपनी api कुंजी के रूप में "any_apikey" पास कर रहे हैं? –

+0

नहीं, यह मेरी असली एपीआई कुंजी नहीं है। मेरे पास Google –

+0

द्वारा दी गई विभिन्न एपीआई कुंजी है ठीक है, अच्छा :) बस –

उत्तर

2

स्थिर मानचित्र API और स्थल API प्रत्येक उस कुंजी के लिए API कंसोल में सक्षम होने के लिए की जरूरत है। एपीआई कंसोल खोलें और प्लेस एपीआई तक पहुंच सक्षम करें। सौजन्य सीमा है: 1,000 अनुरोध/दिन, उसके बाद आपको बिलिंग सक्षम करने की आवश्यकता हो सकती है।

https://code.google.com/apis/console/

+0

हाय, कंसोल में प्लेस एपीआई तक पहुंच कैसे सक्षम करें। क्या आप मुझे कदम बता सकते हैं। – Dave

1

इस कोशिश के साथ किसी भी समस्या है: -

https://developers.google.com/places/documentation/

पढ़ें निम्नलिखित भाग और कदम कुंजी प्राप्त करने के साथ आगे बढ़ें।

प्रमाणीकरण

Google स्थल API आपके ऐप्लिकेशन की पहचान के लिए एक API कुंजी का उपयोग करता है। एपीआई कुंजी को Google एपीआई कंसोल के माध्यम से प्रबंधित किया जाता है। एपीआई का उपयोग शुरू करने से पहले आपको अपनी एपीआई कुंजी की आवश्यकता होगी। स्थल API सक्रिय करने और अपने कुंजी बनाने के लिए:

Visit the APIs console at https://code.google.com/apis/console and log in with your Google Account. 
A default project called API Project is created for you when you first log in to the console. You can use the project, or create a new one by clicking the API Project button at the top of the window and selecting Create. Maps API for Business customers must use the API project created for them as part of their Places for Business purchase. 
Click the Services link from the left-hand menu. 
Click the Status switch next to the Places API entry. The switch slides to On. 
Click API access from the left navigation. Your key is listed in the Simple API Access section. 
+0

एलओएल ... मेरे पास एपीआई कुंजी है AIzaSyC6RgmTP5LoaS6oFSiOSu ?????????????? लेकिन मैं सुरक्षा उद्देश्यों के लिए any_apiKey दिखाता हूं ... –

+0

तो समस्या क्या है? – Gypsa

+0

आपको पूरे दस्तावेज को पढ़ने और समस्या को ठीक करने की आवश्यकता है क्योंकि एपीआई कुंजी को जानने के बिना हम यूआरएल नहीं चला सकते हैं और जांच सकते हैं कि इसमें कुछ गड़बड़ है या नहीं। – Gypsa

4

ब्राउज़र एप्लिकेशन कुंजी, नहीं आईओएस कुंजी का उपयोग करें। आप इसे यहाँ पा सकते हैं:

https://code.google.com/apis/console/

और प्रेस छोड़ दिया

+0

ब्रॉसर ऐप कुंजी काम करता है लेकिन आईओएस कुंजी नहीं .... – Maulik

+0

मैं एंड्रॉइड ऐप के लिए एक कुंजी का उपयोग करने की कोशिश कर रहा था, लेकिन @CaptainQuality ने कहा, ब्राउज़र ऐप कुंजी का उपयोग करके मेरे लिए काम किया और अपनी मोबाइल ओएस विशिष्ट कुंजी नहीं बनाई। मुझे यकीन नहीं है कि इसे Google से इतना भ्रमित क्यों होना चाहिए। – Rajaraman

2

पर "एपीआई पहुँच" बस दूसरे जोश समाधान करना चाहते हैं। मैंने आईओएस कुंजी के साथ घंटों बिताए और लगभग छोड़ दिया है।

20

हालांकि इसका उत्तर दिया गया है, मुझे लगता है कि समुदाय यह काम करने के लिए वास्तव में क्या करने की आवश्यकता है, यह समझाने में बेहतर कर सकता है।

मैं इसके बारे में अपने बालों को फाड़ रहा था, यह मुझे समझ में नहीं आया .. मैं आईओएस/एंड्रॉइड ऐप बना रहा था, इसलिए मैंने आईओएस/एंड्रॉइड कुंजी बनाया ... गलत।

Google के स्थान API के साथ, आपके बंडल पहचानकर्ता को भी नहीं माना जाता है।

यह क्या तुम सच में करना चाहते हैं: (नई उपयोगकर्ता इंटरफ़ेस मैं उपयोग कर रहा हूँ)

1. में https://cloud.google.com/console#/project लॉग

का चयन करें अपनी परियोजना का नाम है, तो एपीआई & में जाने एथ> एपीआई

सुनिश्चित करें कि आपके पास स्थान API चालू है। यह एकमात्र चीज है जिसे स्थान-एपीआई के काम करने के लिए चालू करने की आवश्यकता है। enter image description here

साख में 2.

क्लिक करें सार्वजनिक एपीआई पहुँच enter image description here

3. चयन ब्राउज़र कुंजी enter image description here

4. बनाएं पर क्लिक करें के तहत नई कुंजी बनाने, कुछ और नहीं

HTTP संदर्भ बॉक्स को खाली छोड़ दें।

enter image description here

5. यहाँ

यह कुंजी जनरेट किया गया अपने डेवलपर प्रवेश द्वारा एपीआई के किसी भी उपकरण के उपयोग से किसी भी उपयोगकर्ता की अनुमति देगा कुंजी का प्रयोग करें। आप इसे यहाँ बाहर की कोशिश कर सकते हैं: (YOUR_KEY_HERE अपने उत्पन्न कुंजी के साथ प्रतिस्थापित करना सुनिश्चित करें)

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Food%20Sh&sensor=false&radius=500&location=0,0&key=YOUR_KEY_HERE 

6. आनंद लें

अब आप अपने Android/iOS उपकरण में ऊपर है कि URL का उपयोग कर सकते हैं ।

+0

यह था। चरण 4 (HTTP संदर्भ बॉक्स को खाली छोड़ दें।) मेरे लिए काम किया। – Marco

+0

यह सबसे अच्छा जवाब है। बहुत बहुत धन्यवाद। –

+0

हालांकि यह एक कट्टर जवाब की तरह महसूस हो सकता है, यह एकमात्र विकल्प है। Google स्थल API वर्तमान में एंड्रॉइड या आईओएस कुंजी का समर्थन नहीं करता है .... एसएमएच आप Google https://code.google.com/p/gmaps-api-issues/issues/detail?id= पर आधिकारिक अनुरोध देख सकते हैं 4896 –

0

मैं इस कोड के साथ समाप्त होता हूं।

UIActivityIndicatorView *activity=[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
activity.center=self.view.center; 
[activity startAnimating]; 
[self.view addSubview:activity]; 


NSString *str=[[NSString alloc] init]; 
str=[NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/textsearch/json?query=%@&sensor=true&key=YOUR_BROWSER_KEY",searchQuery]; 
NSMutableURLRequest *request1=[[NSMutableURLRequest alloc] init]; 
NSURL *url= [[NSURL alloc] initWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
[request1 setURL:url]; 
[request1 setHTTPMethod:@"GET"]; 

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

    NSError *requestError = nil; 
    NSURLResponse *urlResponse = nil; 
    NSData *response1 = 
    [NSURLConnection sendSynchronousRequest:request1 
          returningResponse:&urlResponse error:&requestError]; 


    dispatch_async(dispatch_get_main_queue(), ^{ 


     if ([activity isAnimating]) { 
      [activity startAnimating]; 
      [activity removeFromSuperview]; 
     } 
     NSError* error; 
     NSDictionary* json = [NSJSONSerialization JSONObjectWithData:response1 
                  options:kNilOptions 
                   error:&error]; 

     NSLog(@"%@",json); 

     self.searchArray=[json objectForKey:@"results"]; 
     [self.tableView setDataSource:self]; 
     [self.tableView setDelegate:self]; 
     [self.tableView reloadData]; 

     [self showPins:self.searchArray]; 

    }); 
}); 
संबंधित मुद्दे