/ / Google क्लाउड एंडपॉइंट 2 एपीआई के लिए एक ऐप के लिए एपीआई कुंजी प्रदान करने का सही तरीका क्या है? - android, google-app-engine, api-key, google-cloud-endpoints-v2

ऐप के लिए Google क्लाउड एंडपॉइंट्स 2 एपीआई को एपीआई कुंजी प्रदान करने का सही तरीका क्या है? - एंड्रॉइड, google-app-engine, api-key, google-cloud-endpoints-v2

मेरे पास Google एंडपॉइंट में एक API है, और मैं "ve" हूंएंड्रॉइड ऐप द्वारा आवश्यक एपीआई कुंजी उत्पन्न करता है। मैं एपीआई का उपयोग करने के लिए काम कर रहा हूं। हालांकि, मुझे इस बात का कोई पता नहीं है कि उत्पन्न क्लाइंट लाइब्रेरी का उपयोग करते समय एपीआई कुंजी की आपूर्ति करने के लिए कहां है। ऐप से किया गया हर अनुरोध 403 देता है, एंड्रॉइड ऐप निषिद्ध है। । मैं "एसओ में भी पढ़ता हूं कि इसे हेडर में दिया जाना चाहिए, लेकिन Google एंडपॉइंट्स एपीआई डॉक्स का जो निकटतम उल्लेख किया गया है वह यह है कि एक एपीआई कुंजी URL का हिस्सा होना चाहिए, जो हालांकि ऐसा नहीं लगता है यदि अनुरोध एंड्रॉइड क्लाइंट से है।

जब एपीआई कुंजी एपीआई से हटा दी जाती है, तो कोई भीक्वेरी, यहां तक ​​कि कर्ल, अपेक्षित परिणाम प्राप्त करने में सक्षम है। कोड के उदाहरणों के साथ यह कैसे किया जाना चाहिए, इस पर किसी भी प्रलेखन की बहुत सराहना की जाएगी।

संपादित करें: मैं यह भी सोच रहा हूं कि क्या Google ने एंडपॉइंट में android debug.keystore के SHA-1 का उपयोग करने पर प्रतिबंध लगा दिया है।

पी.एस.: इस बारे में मेरे पहले के सवाल को गलत तरीके से वोट दिया गया था और इसका एकमात्र जवाब देश के प्रतिबंधों के बारे में था, जो मुझे यकीन है कि इससे कोई लेना-देना नहीं है। तो शायद इस बार मैं अपने प्रश्न को दूसरे तरीके से फिर से लिखूंगा।

उत्तर:

जवाब के लिए 2 № 1

मैं Google क्लाउड एंडपॉइंट API के साथ काम करने के लिए कम से कम एक प्रकार की API कुंजी प्राप्त करने में कामयाब रहा। यहां बताया गया है:

1) "प्रयोग करने योग्य" एपीआई कुंजी इसे (यानी: एंड्रॉइड ऐप, वेब, आदि नहीं) के लिए कोई प्रतिबंध नहीं होने से उत्पन्न हुई थी। एपीआई क्रेडेंशियल पेज में इसे बनाते समय आप एक कुंजी के लिए प्रतिबंधों का चयन कर सकते हैं।

2) "usable" कुंजी जनरेट किए गए क्लाइंट लाइब्रेरी को सेवा..सेटके (...) विधि के माध्यम से दी गई थी।

यह कुछ हद तक उत्पादित है जो मैं के लिए जा रहा था;केवल उन्हीं कॉलर्स द्वारा API को कॉल की अनुमति देना जो स्वयं को पहचान सकते हैं। कारण यह काम करता है (इस बिंदु से पूर्ण मान्यताओं और अनुमान काम), यह है कि उत्पन्न ग्राहक पुस्तकालय एपीआई के लिए एक HTTPS अनुरोध करता है, और इसलिए, प्राधिकरण जाँच तो संदर्भ में एपीआई (समापन बिंदु रूपरेखा) द्वारा किया जाना चाहिए Android ऐप के संदर्भ में, HTTPS अनुरोध के बजाय।

अगर यह सच है, तो मुझे यह पता लगाने में बहुत दिलचस्पी है कि एंड्रॉइड ऐप जनरेट किए गए क्लाइंट लाइब्रेरी के साथ एपीआई के लिए "सही" कॉल कैसे करता है।

अद्यतन करें: स्क्रीनशॉट और वर्तमान सेटअप का कोड

Google क्लाउड कंसोल में -> API और सेवाएँ -> क्रेडेंशियल यहां छवि विवरण दर्ज करें

जावा कोड में एपीआई कुंजी का उपयोग:

// Call to the generated client library for the API
DataCollection dataCollection =  service.getDataAPIMethod()
.setX(...)
.setY(...)
.setZ(...)
.setKey("***")
.execute();