2012-03-14 16 views
5

मैं PHP वेब अनुप्रयोग में काम कर रहे Google's Calendar API प्राप्त करने का प्रयास कर रहा हूं, लेकिन मुझे प्रमाणीकृत होने में कठिनाई हो रही है।सर्वर के लिए Google API प्रमाणीकरण

मैं क्या करना चाहता हूं कि उपयोगकर्ताओं को सर्वर द्वारा ज्ञात एक खाते के कैलेंडर के साथ बातचीत करने की अनुमति दी जाए।

OAuth 2.0 docs में शामिल प्रत्येक प्रकार का परिदृश्य "उपयोगकर्ता सहमति" के बारे में वार्तालाप करता है जिसमें एक लॉगिन फॉर्म और व्यक्तिगत उपयोगकर्ता लॉग इन शामिल होता है, लेकिन मैं चाहता हूं कि सर्वर स्वयं को प्रमाणीकृत करने और स्वयं के लिए एक्सेस टोकन प्राप्त करे।

क्या ओएथ का कुछ हिस्सा है या कुछ वैकल्पिक तंत्र मैं इसका उपयोग करने के लिए उपयोग कर सकता हूं?

उत्तर

3

ऐसा करने के लिए, आपको उपयोगकर्ता सहमति के लिए चरणों के माध्यम से जाना होगा और फिर उस एक्सेस टोकन की प्रतिलिपि बनाना होगा जो आपको PHP कोड में देता है।

OAuth के लिए सामान्य प्रक्रिया इस तरह है: प्रमाणीकरण पृष्ठ पर

  1. संदेश उपयोगकर्ता।
  2. उपयोगकर्ता के साथ $ _GET [ 'कोड'] वापस आता है
  3. उपयोगकर्ता (या सत्र के लिए डेटाबेस में एक टोकन
  4. स्टोर टोकन के लिए OAuth सर्वर को भेजें $ _GET [ 'कोड'], अगर यह बहुत ही कम रहता है)

लेकिन इस तरह के एक कैलेंडर के साथ ऐसा करने पर, आप चरण 4 को संशोधित करते हैं। इसके बजाए, आप स्क्रीन पर टोकन को डंप करते हैं और इसे अपनी PHP फ़ाइल में चर के रूप में कॉपी करते हैं, इसे डेटाबेस में डालने के बजाय। फिर जब आप सर्वर पर पहुंच टोकन पास करने के लिए जाते हैं, तो आप डेटाबेस/सत्र से गतिशील टोकन की बजाय ज्ञात, स्थैतिक टोकन पास करते हैं।

+0

धन्यवाद, लेकिन यह एक्सेस नहीं है कि टोकन स्वयं ही कम रहता है? मुझे इसे हर समय मैन्युअल रूप से करना होगा। – andy

+0

मैं दिसंबर से किसी भी समस्या के साथ कैलेंडर के लिए इस सटीक विधि का उपयोग कर रहा हूं, और इस कैलेंडर पर होने वाली घटनाओं को इतनी बार अपडेट किया जाता है कि मुझे पता है कि यह अभी भी काम कर रहा है। मुझे लगता है कि एक्सेस टोकन में जीवन भर होता है, लेकिन यह महीनों में मापा जाता है, दिन या घंटे नहीं। – kingcoyote

+0

ठीक है धन्यवाद मैं इसे एक दूंगा। – andy

2

देखें यहाँ mathewh का जवाब:

How to automate login to Google API to get OAuth 2.0 token to access known user account

मेरे लिए लाइट बल्ब है जब आप पहुँच जाते हैं आप के रूप में अच्छी तरह से एक refresh_token मिल टोकन ... आप इस टोकन का उपयोग टोकन आपकी पहुंच "ताज़ा" करने के लिए यह समाप्त हो जाता है।

पहली बार मैन्युअल प्राधिकरण चरण के आसपास कोई रास्ता नहीं है।

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