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

  1. Google Developers कंसोल पर एक नया प्रोजेक्ट पंजीकृत करें, gmail API सक्षम करें और सहमति स्क्रीन कॉन्फ़िगर करें।
  2. सहमति स्क्रीन में मैंने अभी-अभी gmail.send के लिए ऐप का नाम और दायरा बदला है।

  3. एक वेबपैप के रूप में मेरी साख बनाएं और इसे मैंने रीडायरेक्ट यूरिस पर रखा है।

http://लोकलहोस्ट/होम/इंडेक्स

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

फिर मैं credentials.json फ़ाइल डाउनलोड करता हूं और इसे अपने प्रोजेक्ट में जोड़ता हूं, फिर इस कोड को निष्पादित करता हूं, ruta मेरे क्रेडेंशियल्स का पथ है।

UserCredential credential;
        using (var stream =
            new FileStream(ruta, FileMode.Open, FileAccess.Read))
        {
            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                Scopes,
                "user",
                CancellationToken.None).Result;
        }

उसके बाद मैं प्रोग्राम निष्पादित करता हूं लेकिन मुझे कभी भी ऑथ पेज नहीं दिखाई देता है, इसके बजाय त्रुटि आती है:

त्रुटि 400: redirect_uri_mismatch. अनुरोध में रीडायरेक्ट URI, http://127.0.0.1 0.1:62297/authorize/, OAuth क्लाइंट के लिए अधिकृत लोगों से मेल नहीं खाता।

मैंने उस यूआरआई को "http://localhost/authorize" और "http://localhost/authorize/" मेरे रीडायरेक्ट URI में लेकिन मुझे वही त्रुटि संदेश मिलता रहता है।

मैं इसके साथ काफी नौसिखिया हूं, इसलिए मैं इस सभी रीडायरेक्ट यूरिस के बारे में थोड़ा सा खो गया हूं, आपके उत्तरों के लिए धन्यवाद

0
Juan Herrera 15 जून 2020, 01:50

1 उत्तर

सबसे बढ़िया उत्तर

Google डेवलपर कंसोल में रीडायरेक्ट यूरी बिल्कुल उसी से मेल खाना चाहिए जिसे आप भेज रहे हैं। यह मूल रूप से Googles प्राधिकरण सर्वर को बताता है कि आप कहां चाहते हैं

त्रुटि 400: रीडायरेक्ट_यूरी_मिसमैच। अनुरोध में रीडायरेक्ट URI, http://127.0.0.1:62297/authorize/, करता है OAuth क्लाइंट के लिए अधिकृत लोगों से मेल नहीं खाता।

इसका मतलब है कि आप http://127.0.0.1:62297/authorize/ से भेज रहे हैं और आपने नहीं भेजा है इस पोर्ट को उस प्रोजेक्ट के लिए आपके Google डेवलपर कंसोल में जोड़ा है। क्रेडेंशियल्स को वापस कर दिया।

स्थिर बंदरगाह की जरूरत है।

यदि पोर्ट नंबर बदल रहा है तो यह आपके प्रोजेक्ट पर आपके विकास के माहौल के साथ एक समस्या है, आपको एक स्थिर पोर्ट का उपयोग करने के लिए प्रोजेक्ट को सेट करने की आवश्यकता है जिसे आप Google डेवलपर कंसोल में जोड़ सकते हैं।

एमवीसी बनाम स्थापित आवेदन

आप अपने प्रश्न में कहते हैं कि आप एमवीसी का उपयोग कर रहे हैं कि आप जिस कोड का उपयोग कर रहे हैं वह GoogleWebAuthorizationBroker.AuthorizeAsync इंस्टॉल किए गए एप्लिकेशन के साथ काम करने के लिए डिज़ाइन किया गया है। जब यह चलता है तो यह मशीन पर सहमति विंडो ब्राउज़र लॉन्च करेगा कि यह चल रहा है। यह वेब एप्लिकेशन के साथ काम नहीं करेगा क्योंकि यह सर्वर पर एक ब्राउज़र लॉन्च करने का प्रयास करेगा, जिसके पास इसकी पहुंच नहीं है।

इसके बजाय GoogleAuthorizationCodeFlow

2
Community 20 जून 2020, 09:12