Google API: क्लाइंट के लिए मान्य मूल नहीं है: ग्राहक आईडी "आईडी" के लिए यूआरएल श्वेत नहीं किया गया है


95

मुझे मदद की ज़रूरत है। मुझे अपने प्रश्न का उत्तर नहीं मिला। मैंने गुग्लिंग की कोशिश की और मैंने अन्य पक्षों से पूछने की कोशिश की लेकिन मुझे कभी कोई जवाब नहीं मिला।

मैं google API (Youtube data API) के साथ काम कर रहा हूँ और मैं गूगल के उदाहरण कोड का उपयोग करता हूँ जिस कोड में यह काम करता है मैं उसके बारे में बहुत निश्चित हूं। स्क्रिप्ट शुरू करने का प्रयास करने पर मुझे एक त्रुटि मिली:

विवरण: "क्लाइंट के लिए मान्य मूल नहीं:" MyURL "को क्लाइंट ID" MyID "के लिए श्वेत सूची में नहीं लाया गया है। कृपया https://console.developers.google.com/ पर जाएं और अपने प्रोजेक्ट के क्लाइंट आईडी के लिए इस मूल को श्वेत सूची में लाएं । "

त्रुटि: "idpiframe_initialization_failed"

इस समस्या को मैंने अपनी वेबसाइट को श्वेतसूची में बदल दिया है और इसे स्वीकार कर लिया गया है। मुझे नहीं पता कि क्या गलत है। मुझे अपने डोमेन "श्वेतसूची" के लिए क्या करना चाहिए (यह श्वेतसूची में है)

और एक और सवाल। मैंने पहले इस प्रश्न का उत्तर नहीं खोजा था।

मुझे लगता है कि यह संभव है कि मैं लोकलहोस्ट पर कोड का उपयोग कर सकता हूं, मुझे लगता है कि मुझे अपने लोकलहोस्ट पते या इस तरह के कुछ को श्वेतसूची में लाना होगा। लेकिन सफेदी करने से काम नहीं चलता।

  • DreamGamer

2
अभी भी उसी समस्या का सामना कर रहे हैं। किसी को भी इस मुद्दे को हल करने के लिए कोई अन्य समाधान है?
यशु मित्तल

मेरे मामले में, httpसमस्या का कारण बनता है। httpsसमस्या को हल करने के लिए स्विचन ।
जिओ

1
उन लोगों के लिए जो पहले से ही अधिकृत डोमेन में डोमेन जोड़ चुके हैं, बस अपनी साइट का कैश साफ़ करें, यह निश्चित रूप से काम करेगा यदि सभी डेटा सही मायने में सेट है।
हरितसिंह गोहिल

जवाबों:


76

एक ही समस्या थी और यहाँ मैंने इसे कैसे हल किया:

  1. अपने प्रोजेक्ट पर Analytics और Google Plus API दोनों को सक्रिय करें
  2. नए OAUTH 2.0 क्लाइंट क्रेडेंशियल बनाएं
    • प्रतिबंध अनुभाग के तहत अधिकृत जावास्क्रिप्ट मूल जोड़ें
  3. नई क्लाइंट आईडी का उपयोग करें।

का आनंद लें।


OMG बहुत बहुत धन्यवाद! यह मेरे लिए काम कर रहा है। मेरी समस्या यह थी कि मैंने क्लाइंट आईडी का उपयोग किया था न कि क्लाइंट आईडी का।
ड्रीमगेमर

4
मुझे यह स्पष्ट करना चाहिए कि यदि आपने पहले से ही एक अलग पोर्ट के लिए एक ऑउथ बनाया है; किसी कारण से, आप किसी भिन्न का उपयोग करने के लिए पोर्ट को पुनः संपादित नहीं कर सकते। मैंने मूल रूप से नए पोर्ट के लिए "एक और क्रेडेंशियल" बनाया है। जाहिर है, यह एक और टोकन पैदा करेगा; तो बस इसे पकड़ो और इसके बजाय इसका उपयोग करें। आप कंसोल में दोनों टोकन रख सकते हैं।
सैम ३।

धन्यवाद! यह सहज ज्ञान युक्त है, लेकिन यह सही उत्तर है। बहुत पागल है कि आप अपनी मौजूदा कुंजी को केवल अपनी ज़रूरत के अनुसार एपीआई (जो भी स्पष्ट नहीं है) नहीं जोड़ सकते। कुंजी के लिए संपूर्ण कॉन्फ़िगरेशन को फिर से बनाना एक दर्द है।
बीचकोड

आप Googe Plus API को सक्रिय करने के लिए कह रहे हैं। लेकिन Youtube API और Google Plus API के बीच क्या संबंध है।
यशु मित्तल

मैं वास्तव में यहाँ सहसंबंध को नहीं समझता हूं, लेकिन यह केवल एक चीज है जो मेरे लिए काम करती है (और अन्य, जाहिरा तौर पर)।
एज्रा ओबवाले

199

मैंने कैशे क्लियर किया। तब काम करना शुरू किया।

क्रोम में: सेटिंग्स -> उन्नत -> ब्राउज़िंग डेटा साफ़ करें -> कैश्ड चित्र और फाइलें


1
धन्यवाद, मैंने सब कुछ ठीक किया और मैं मुश्किल में था।
cura

2
अपने वेब एप्लिकेशन के लिए Google साइन-इन का उपयोग करते समय इसने मेरे लिए काम किया। धन्यवाद!
साहिल लखवानी

1
कुछ महीनों पहले जब मेरे साथ ऐसा हुआ था, तो मैंने आपको पहले ही एक बार
उकेरा

1
इस जवाब ने मेरी मदद नहीं की।
tishma

2
बहुत सारे अनुरोध चल रहे हैं। मुझे लगता है कि उनमें से एक को ब्राउज़र द्वारा कैश किया जा रहा है और इसलिए यह एपीआई कंसोल में आपके द्वारा किए गए परिवर्तनों के बारे में नहीं जानता है। लेकिन मुझे लगता है कि ब्राउज़र DevTools खुले रहते हुए कैश को पूरी तरह से अक्षम करना आसान है। अधिकांश समय "नेटवर्क" टैब में एक विकल्प (एक चेकबॉक्स) होता है। यह सक्षम करने के बाद कि पेज का एक रिफ्रेशमेंट इसे काम करने के लिए पर्याप्त है।
एंड्रियास लिनर्ट

16

कैश क्लियर करना मेरे लिए टोटका था


3
एक बार जब आप ऐसा करते हैं, तो स्टोवओवरफ्लो को फिर से लॉगिन करने के लिए फिर से लॉगिन करना न भूलें
आनंद रॉकज़


7

मेरे लिए, इसने गूगल एनालिटिक्स जैसे किसी भी अतिरिक्त एपीआई को जोड़ने के बिना काम किया। कैश को बचाने से बचने के लिए, बस पूरा क्लायंट जोड़ना सुनिश्चित करें और गुप्त विंडो में ऐप खोलें। यदि पहले से ही नियमित रूप से विंडो में ऐप खोला है, तो 1- सभी टैब को बंद कर दें जो ऐप खुला है। 2- कैश और कुकीज को साफ करें। क्रोम में, सेटिंग्स में -> पासवर्ड और फ़ॉर्म -> ब्राउज़िंग डेटा साफ़ करें -> उन्नत (टैब) -> एक) कुकीज़ और अन्य साइट डेटा का चयन करें और बी) कैश्ड चित्र और फाइलें 3- एक ताजा गुप्त विंडो खोलें और अपना परीक्षण करें एप्लिकेशन।


2
सभी टैग बंद करने की आवश्यकता नहीं है, बस एक गुप्त विंडो खोलना पर्याप्त है।
बर्थ वेरिस

3

प्रलेखन कहता है कि दो महत्वपूर्ण चरणों की अनदेखी न करें ("जैसा कि आप निर्देशों के माध्यम से जाते हैं, यह महत्वपूर्ण है कि आप इन दो महत्वपूर्ण चरणों की अनदेखी न करें: Analytics API को सक्षम करें यहां मेरे लिए काम किया गया है:

  1. Analytics API सक्षम करें
  2. आपके पास वापस क्रेडेंशियल्स, पिछले OAuth 2.0 को हटा दें
  3. अब सही उत्पत्ति के साथ नए OAuth बनाएं

2

मैंने क्विकस्टार्ट उदाहरण में दिए गए निर्देशों का भी पालन किया था, एक ही समस्या थी, बिना किसी लाभ के यहाँ सुझाए गए सभी समाधानों की कोशिश की, हर उस चीज़ की कोशिश की जिसकी मैं कल्पना कर सकता था लेकिन इससे कोई फायदा नहीं हुआ।

अंत में देखा कि मैंने अंत में CLIENT_IDएक जगह के साथ नकल की ।

  var CLIENT_ID = '44********-*****************.apps.googleusercontent.com ';

एक बार जब मैंने इसे ठीक कर लिया (अतिरिक्त स्थान हटा दिया) तो यह काम कर गया।

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


2

मैंने बस एक ही गलती की है: आधिकारिक क्विकस्टार्ट उदाहरण की कोशिश की और आप के समान त्रुटि संदेश प्राप्त किया।

यह बल्कि भ्रामक है, क्योंकि वह उदाहरण मेरे द्वारा व्यक्तिगत रूप से आवश्यक की तुलना में बहुत अधिक जटिल है: यह उपयोगकर्ता लॉगिन के लिए OAuth का उपयोग करता है, और अभी नहीं है API key। अगर आप मेरे जैसे हैं, और आप OAuth का उपयोग नहीं करना चाहते हैं, और आप केवल कुछ विशेषाधिकार प्राप्त कार्यों के बिना, कुछ YouTube डेटा पुनर्प्राप्त करना चाहते हैं (जैसे कि यदि आप केवल वीडियो या चैनल या प्लेलिस्ट की खोज करना चाहते हैं), तो यह उदाहरण है तुम्हारे लिए।

समाधान, सरल है, बस उपलब्ध कराने apiKeyके बजाय clientIdकरने के लिए gapi.client.init(लिंक: एपीआई डॉक्स ), इसलिए की तरह:

const apiKey = '<my API key>';

function gooApiInitClient() {
  // Array of API discovery doc URLs for APIs used by the quickstart
  const discoveryDocs = [
    "https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest"
  ];

  return gapi.client.init({
    apiKey,
    discoveryDocs
  });
}

// see: https://developers.google.com/api-client-library/javascript/reference/referencedocs
gapi.load('client', {
  callback: function() {
    // we now have gapi.client! initialize it.
    gooApiInitClient().
      then(() => {
        // we can start using the API here!
        // e.g. gapi.client.youtube.videos.list(...);
      }).then(results => { 
        // use results here....
      });
  }
});

2
मैं इस उत्तर को बेहतर बनाने के लिए कोड स्निपेट को सरल बनाने का सुझाव देता हूं। Init कॉल केवल 4 लाइनें है और यह वास्तव में केवल एक चीज है जो बदल रही है। अन्य सामान उतना उपयोगी नहीं है।
चार्ली

इसे थोड़ा साफ किया :)
डोमी

2

मैं भी नमूना लेने का प्रयास कर रहा था (से) https://developers.google.com/drive/api/v3/quickstart/js

यह लगातार विफल रहा, भले ही IP पता WebAPI में जोड़ा गया हो।

लेकिन आपको अपने OAUTH में लोकलहोस्ट को जोड़ना होगा: 8000 (सिर्फ 127.0.0.18000 नहीं):

OUT ग्राहक

OAUTH क्लाइंट टेक्स्ट पर फ़्लोट करें और यह एक लिंक बन जाएगा। उस लिंक पर क्लिक करें और आप पोर्ट सहित URI जोड़ सकते हैं। मेरा पहले से ही 127.0.0.1:8000 था, लेकिन लोकोहास्ट नहीं: 8000।

locahost: 8000

यहाँ दिलचस्प / अजीब बात है। जब मैं लोकलहोस्ट को पिंग करता हूं तो मैं देखता हूं:

IPV6

मुझे लगता है कि यह IPV6 है।

वैसे भी, अगर मैं 127.0.0.1 पिंग करता हूं तो मुझे अपेक्षित प्रतिक्रिया (आईपीवी 4 के माध्यम से) दिखाई देती है

IPV4

हो सकता है कि यह एक लाल रंग की हेरिंग हो, लेकिन मुझे यकीन नहीं था कि OAUTH में दर्ज किया गया मूल्य इससे प्रभावित था या नहीं।

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

लोकलहोस्ट को जोड़ने के बाद ही: OAUTH में 8000 URI ने काम किया, लेकिन इसे जोड़ने के बाद काम ठीक हुआ।


2

जैसा कि कई लोगों ने संकेत दिया है, यह सिर्फ एक ब्राउज़र कैशिंग मुद्दा है। कोई नई कुंजी बनाने या कैश साफ़ करने की आवश्यकता नहीं है। बस एक नए ब्राउज़र गुप्त (अनाम) विंडो पर फिर से प्रयास करें और इसे ठीक काम करना चाहिए।


1

मैं अपने वेब ऐप के लिए लॉगिन प्राप्त करने की कोशिश कर रहा था। मैंने जो किया वह क्लाउड प्लेटफ़ॉर्म से OAuth क्लाइंट आईडी क्रेडेंशियल्स को फिर से बनाना था। जब मैंने ऐसा किया और नई क्लाइंट आईडी का उपयोग किया, तो सब कुछ ठीक रहा। निश्चित नहीं था कि यह मुद्दा पहले क्या था, लेकिन यह अब पूरी तरह से ठीक है।

अगर किसी को यह Google या व्हाट्सएप से मिलता है, तो कोशिश करें। यह सिर्फ काम कर सकता है। यह एज्रा ओबवाले के जवाब की व्याख्या करेगा क्योंकि यह अनिवार्य रूप से एक जोड़ी एपीआई जोड़ने के बाद एक नई क्लाइंट आईडी बना रहा है।

अगर किसी को एक स्पष्टीकरण के रूप में पता है कि ऐसा क्यों होता है जिसकी सराहना की जाएगी।


0

मेरे पास ठीक यही समस्या थी - मेरे लिए इसका समाधान API प्रबंधक में जाना और Analytics API को सक्षम करना था। निश्चित नहीं है कि यह मुद्दा क्या था, लेकिन यह तय हो गया है!


1
मैंने Analytics API सक्षम किया लेकिन कुछ भी नहीं बदला। : सी
ड्रीमगैम

0

मेरा मानना ​​है कि यह कैशिंग के साथ करना है, अपने ब्राउज़र पर जाने की कोशिश करें और कैश को साफ़ करें, कोशिश करें: क्रोम में,> सेटिंग> उन्नत> स्पष्ट ब्राउज़िंग डेटा:>: कैश्ड चित्र और फाइलें।


0

जिन कारणों से यह काम नहीं कर सका उनमें से एक निश्चित पर लॉगिन की संख्या (100) से अधिक है client ID

आप google API कंसोल पेज पर जा सकते हैं और नए Oauth2 क्लाइंट क्रेडेंशियल (अपने एप्लिकेशन URL को नीचे जोड़ना याद रखें Authorized Javascript Origins) बना सकते हैं और फिर उसका उपयोग कर सकते हैं।


0

जब तक मैंने मुवक्किल_आईडी की नकल की तब तक मुझे भी यही मुद्दे थे, मेरी फाइल में सफेद जगह थी, इसलिए मैंने स्ट्रिंग से सफेद स्थान को हटा दिया और अब सब कुछ बढ़िया काम कर रहा है।


0

मुझे अपने स्थानीयहोस्ट पर प्रतिक्रिया-सामाजिक-लॉगिन का उपयोग करके Google साइन-इन के साथ काम करते समय एक ही मुद्दे का सामना करना पड़ा। श्वेतसूची में हमें इसे काम करने के लिए http: // localhost: 3000 प्रदान करना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.