2016-07-15 6 views
6

मैं आईओएस के लिए Google स्थानों एपीआई का उपयोग करने की कोशिश कर रहा हूं। मैंने एक एपीआई कुंजी बनाई और फिर मैं कुछ तरीकों को कॉल करने की कोशिश कर रहा हूं। मैं अनुप्रयोग में api कुंजी दर्ज किया है लेकिन जब मैं फोन करना मैं एक इस त्रुटिGoogle स्थल एपीआई आईओएस दैनिक सीमा अनधिकृत उपयोग के लिए त्रुटि

lookup place id query error: The operation couldn’t be completed. (com.google.places.server.ErrorDomain error -1.) 
Error Domain=com.google.places.server.ErrorDomain Code=-1 "(null)" UserInfo={NSUnderlyingError=0x7f8bf861ca80 {Error 

डोमेन = com.google.GTLJSONRPCErrorDomain कोड = 403 "( अनधिकृत उपयोग के लिए दैनिक सीमा को पार मिलता है। जारी उपयोग के लिए साइनअप की आवश्यकता है।) " UserInfo = {error = अनधिकृत उपयोग के लिए दैनिक सीमा पार हो गई। जारी उपयोग साइनअप की आवश्यकता है, NSLocalizedFailureReason = (दैनिक प्रस्तुति सीमा अनधिकृत उपयोग के लिए पार हो गई जारी उपयोग साइनअप की आवश्यकता है।।), GTLStructuredError = GMSx_GTLErrorObject 0x7f8bf2be6060:। {संदेश: "।। अनधिकृत उपयोग के लिए दैनिक सीमा पार हो गई जारी उपयोग साइनअप की आवश्यकता है" डेटा: [1] कोड: 403}}}}

मैं GMSServices.provideAPIKey ("MY_API_KEY") का उपयोग मेरे AppDelegate में api कुंजी प्रदान करते हैं और मैं 'अनुप्रयोग के लिए दिए गए स्थान का उपयोग किया है। मैं निश्चित रूप से मेरी उपयोग सीमा से अधिक नहीं है (मेरा कोटा 1000 में से 0 दिखाता है) क्योंकि मैं एपीआई से बात करने में सक्षम नहीं हूं। मैंने कुछ बार फिर से उत्पन्न किया है और मैंने अन्य जीमेल खातों के साथ अन्य चाबियां भी बनाई हैं लेकिन कुछ भी काम नहीं किया ...

मेरा अनुमान है कि आईओएस सिम्युलेटर स्थान के साथ कुछ सही नहीं है (मैंने एक जीपीएक्स फ़ाइल प्रदान की है एक कस्टम स्थान पास करें) या Google की ओर से कुछ गलत है।

दो नमूनों मैं अपने कोड में है कि कर रहे हैं:

   let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" 

      placesClient.lookUpPlaceID(placeID, callback: { (place: GMSPlace?, error: NSError?) -> Void in 
       if let error = error { 
        print("lookup place id query error: \(error.localizedDescription)") 
        print(error) 
        return 
       } 

       if let place = place { 
        print("Place name \(place.name)") 
        print("Place address \(place.formattedAddress)") 
        print("Place placeID \(place.placeID)") 
        print("Place attributions \(place.attributions)") 
       } else { 
        print("No place details for \(placeID)") 
       } 
      }) 

और

   placesClient.currentPlaceWithCallback({ (placeLikelihoods, error) -> Void in 
       guard error == nil else { 
        print("Current Place error: \(error!.localizedDescription)") 
        return 
       } 

       if let placeLikelihoods = placeLikelihoods { 
        for likelihood in placeLikelihoods.likelihoods { 
         let place = likelihood.place 
         print("Current Place name \(place.name) at likelihood \(likelihood.likelihood)") 
         print("Current Place address \(place.formattedAddress)") 
         print("Current Place attributions \(place.attributions)") 
         print("Current PlaceID \(place.placeID)") 
        } 
       } 
      }) 

placesClient() एक वर GMSPlacesClient के रूप में instantiated है। क्या मुझे यहां कुछ याद आ रही है? शेष कोड एक सामान्य एक्सकोड एकल अनुप्रयोग प्रोजेक्ट है।

+1

यह कहता है "अनधिकृत उपयोग के लिए दैनिक सीमा"। इससे संकेत मिलेगा कि आप वास्तव में लॉग इन नहीं हैं। इसका मतलब है कि प्रति आईपी पते की दैनिक सीमा लागू होती है, न कि आपके कोटा। – fishinear

+0

क्या आप अधिक जानकारी दे सकते हैं? मुझे लॉग इन करना होगा? मैंने अपना ऐप बनाया और मेरी एपीआई कुंजी प्राप्त की। फिर मैं एपीआई से कनेक्ट करने के लिए अपने कोड में उस कुंजी का उपयोग करता हूं। मुझे किस बिंदु पर लॉग इन करना चाहिए? –

उत्तर

17

यहां मेरे अपने प्रश्न का उत्तर दें!

गलती पूरी तरह से मेरी थी (जैसा आमतौर पर है)। मैं इस

var placesClient = GMSPlacesClient() 

गूगल के उदाहरण में तरह placesClient वर की स्थापना की गई थी (check it here) placesClient वर() एक वैकल्पिक GMSPlacesClient के रूप में घोषित किया जाता है और उसके बाद viewDidLoad में GMSPlacesClient.sharedClient को तैयार है। दुर्भाग्य से मैं उस हिस्से को याद किया। कोड

var placesClient: GMSPlacesClient? 

override func viewDidLoad() { 
    super.viewDidLoad() 
    placesClient = GMSPlacesClient.sharedClient() 
} 
+0

इसके काम, धन्यवाद – Alexi

संबंधित मुद्दे