2015-12-29 7 views
5

मैं अपने एंड्रॉइड एपीआई कुंजी (Google मानचित्र दिशा-निर्देश API के लिए) के एंड्रॉइड ऐप के उपयोग को सीमित करने का प्रयास कर रहा हूं जो मेरे SHA-1 फिंगरप्रिंट के साथ हस्ताक्षरित हैं। जब मैं Google डेवलपर कंसोल पर प्रमाण-पत्र के तहत "पैकेज नाम और फिंगरप्रिंट जोड़ें" नहीं करता तो कुंजी पूरी तरह से ठीक काम करेगी। लेकिन जब मैं उन्हें जोड़ता हूं यह त्रुटि आती है:यह आईपी, साइट या मोबाइल एप्लिकेशन इस एपीआई कुंजी का उपयोग करने के लिए अधिकृत नहीं है।

डब्ल्यू/System.err: com.google.maps.errors.RequestDeniedException: यह आईपी, साइट या मोबाइल एप्लिकेशन इस एपीआई कुंजी का उपयोग करने के लिए अधिकृत नहीं है। रिक्त रेफरर

इस त्रुटि को हल करने के लिए दिए गए अधिकांश उत्तर स्थान API के लिए हैं और इसे सर्वर API कुंजी पर स्विच करके हल करें। मुझे एक एंड्रॉइड कुंजी का उपयोग करने की आवश्यकता है और उस कुंजी के उपयोगकर्ताओं को सीमित करना चाहते हैं।

अंक मैंने देखा: 1) Google पहचानता है कि मैं एक वैध एपीआई कुंजी का उपयोग कर रहा हूं। 2) Google सही SHA-1 हस्ताक्षर को पहचानता है, अगर मैं अमान्य API कुंजी का उपयोग करता हूं तो Google हस्ताक्षर के साथ एक त्रुटि दिखाएगा।

किसी भी मदद की बहुत सराहना की जाएगी!

उत्तर

11

जैसा कि आपने पाया है, कोई एपीआई कुंजी यहां तक ​​काम करेगी जब तक कि यह सुरक्षित नहीं है, लेकिन एक सुरक्षित एंड्रॉइड एपीआई कुंजी Google मानचित्र दिशा-निर्देश API के लिए काम नहीं करेगी।

काफी सरलता से, आपको दिशा-निर्देश API (या किसी भी webservice APIs) के लिए सर्वर API कुंजी का उपयोग करने की आवश्यकता है।

the documentation: से

:

गूगल मैप्स दिशा API केवल एक सर्वर कुंजी के साथ काम करेंगे।

इसका कारण यह है कि इन webservice API का मूल रूप से एंड्रॉइड ऐप्स में नहीं, वेबसाइटों पर उपयोग किया जाना था।

इसके अलावा, सर्वर कुंजी को सुरक्षित करने का एकमात्र तरीका आईपी पते के साथ है, इसलिए क्लाइंट-साइड करने का कोई तरीका नहीं है।

Google की आधिकारिक अनुशंसा एक प्रॉक्सी सर्वर का उपयोग करना है जिसे ऐप अनुरोध करता है, और प्रॉक्सी सर्वर से दिशानिर्देश API अनुरोध करता है।

यहाँ देखें (इसमें स्थान वेब सेवा एपीआई के लिए विशिष्ट है, लेकिन यह वेब सेवा एपीआई के किसी भी के लिए मान्य है): गूगल कर्मचारी से https://groups.google.com/forum/#!topic/google-places-api/SmujrL-pDpU

प्रतिक्रिया:

एलेक्सी,

कुछ भी संग्रहित क्लाइंट पक्ष समझौता करने योग्य है, यहां तक ​​कि obfuscating, के साथ आप केवल एक समर्पित हैकर के लिए पहुंच के लिए कुछ हद तक धीमा कर रहे हैं।

मैं आप अपने आवेदन एक प्रॉक्सी सर्वर के लिए एपीआई कुंजी के बिना अपने स्थान अनुरोध भेजने के लिए, संलग्न अनुरोध के अंत करने के लिए एपीआई कुंजी अनुरोध प्राप्त होता है करने के लिए स्थापित सुझाव है, अनुरोध भेजने के लिए, और तो अनुरोध से प्रतिक्रिया को एप्लिकेशन पर प्राप्त करें और वापस करें।

चीयर्स,

क्रिस

+2

अपने जवाब के लिए धन्यवाद। हालांकि मुझे अभी भी यह विश्वास करना मुश्किल लगता है कि Google आपको उस कुंजी पर एक और अधिक सुरक्षित एपीआई कुंजी का उपयोग नहीं करने देगा, जिसमें कोई सुरक्षा नहीं है। – BrianMiz

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

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