मैं फेसबुक में Oauth 2.0 प्राधिकरण के साथ खेल रहा हूं और सोच रहा था कि फेसबुक का टोकन टोकन कभी भी समाप्त हो जाए। यदि हां, तो क्या लंबे समय तक पहुंच टोकन का अनुरोध करने का एक तरीका है?
मैं फेसबुक में Oauth 2.0 प्राधिकरण के साथ खेल रहा हूं और सोच रहा था कि फेसबुक का टोकन टोकन कभी भी समाप्त हो जाए। यदि हां, तो क्या लंबे समय तक पहुंच टोकन का अनुरोध करने का एक तरीका है?
जवाबों:
लगभग थोड़ा खुदाई करने के बाद, मुझे यह मिला। इसका उत्तर प्रतीत होता है:
अपडेट किया गया (11 / अप्रैल / 2018)
फेसबुक परिवर्तन की घोषणा (10/04/2018)
फेसबुक ने टोकन समाप्ति पृष्ठ अपडेट किया (10/04/2018)
offline_access: किसी भी समय उपयोगकर्ता की ओर से अधिकृत अनुरोध करने के लिए आपके आवेदन को सक्षम करता है। डिफ़ॉल्ट रूप से, अधिकांश एक्सेस टोकन थोड़े समय अवधि के बाद समाप्त हो जाते हैं ताकि यह सुनिश्चित किया जा सके कि एप्लिकेशन तभी सक्रिय रूप से एप्लिकेशन का उपयोग कर रहे हैं जब उपयोगकर्ता की ओर से अनुरोध करें। यह अनुमति लंबे समय तक हमारे OAuth समापन बिंदु द्वारा लौटाए गए पहुँच टोकन को बनाती है।
इसकी अनुमति का अनुरोध किया गया।
http://developers.facebook.com/docs/authentication/permissions
अपडेट करें
कुछ समय पहले offline_access की अनुमति हटा दी गई है।
https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/
यह कोशिश करो कि यह आपके लिए पूर्ण मदद करेगा
https://graph.facebook.com/oauth/authorize?
client_id=127605460617602&
scope=offline_access,read_stream,user_photos,user_videos,publish_stream&
redirect_uri=http://www.example.com/
लाइफटाइम एक्सेस टोकन प्राप्त करने के लिए आपको उपयोग करना होगा scope=offline_access
मतलब scope=offline_access
यह है कि: -
किसी भी समय उपयोगकर्ता की ओर से अधिकृत अनुरोध करने के लिए आपके आवेदन को सक्षम करता है। डिफ़ॉल्ट रूप से, अधिकांश एक्सेस टोकन थोड़े समय अवधि के बाद समाप्त हो जाते हैं ताकि यह सुनिश्चित किया जा सके कि एप्लिकेशन तभी सक्रिय रूप से एप्लिकेशन का उपयोग कर रहे हैं जब उपयोगकर्ता की ओर से अनुरोध करें। यह अनुमति लंबे समय तक हमारे OAuth समापन बिंदु द्वारा लौटाए गए पहुँच टोकन को बनाती है।
लेकिन फेसबुक के भविष्य के उन्नयन के अनुसार, 3 अक्टूबर, 2012 से ऑफलाइन_सेस की कार्यक्षमता हमेशा के लिए हटा दी जाएगी। और उपयोगकर्ता को 60 दिनों तक लंबे समय तक एक्सेस टोकन दिया जाएगा और एक्सेस टोकन की समाप्ति से पहले फेसबुक सूचित करेगा या आप अपना रिवाज प्राप्त कर सकते हैं फेसबुक एपि से एक्सपायरी वैल्यू प्राप्त करने वाली अधिसूचना कार्यक्षमता ।।
ध्यान दें कि फेसबुक अब टोकन के पक्ष में offline_access अनुमति को हटा रहा है जिसके लिए आप समाप्ति के लिए "अपग्रेड" का अनुरोध कर सकते हैं। मैं अभी इससे निपट रहा हूं, खुद, इसलिए मेरे पास कहने के लिए ज्यादा कुछ नहीं है, लेकिन यह डॉक्टर मदद कर सकता है:
https://developers.facebook.com/docs/offline-access-deprecation/
मैं ओपी के रूप में एक ही सवाल के साथ यहां आया था, लेकिन ऑफ़लाइन_का उपयोग करने का सुझाव देने वाले उत्तर मेरे लिए लाल झंडे उठा रहे हैं।
सुरक्षा-वार, किसी उपयोगकर्ता के फेसबुक खाते पर ऑफ़लाइन पहुँच प्राप्त करना गुणात्मक रूप से भिन्न है और फेसबुक पर एकल चिह्न के लिए उपयोग करने की तुलना में अधिक शक्तिशाली है, और इसे हल्के ढंग से उपयोग नहीं किया जाना चाहिए (जब तक कि आपको वास्तव में इसकी आवश्यकता न हो)। जब कोई उपयोगकर्ता इस अनुमति को प्राप्त करता है, तो "एप्लिकेशन" किसी भी समय कहीं से भी उपयोगकर्ता के खाते की जांच कर सकता है। मैंने उद्धरणों में "एप्लिकेशन" डाला क्योंकि यह वास्तव में कोई भी उपकरण है जिसमें क्रेडेंशियल्स हैं - आप उन संपूर्ण उपकरणों को स्क्रिप्ट कर सकते हैं, जिनका वेब सर्वर से कोई लेना-देना नहीं है, जो उपयोगकर्ता उन सभी को साझा करने के लिए सहमत हो सकते हैं जो किसी भी जानकारी तक पहुंच सकते हैं साख।
मैं इस सुविधा का उपयोग छोटे जीवनकाल के आसपास काम करने के लिए नहीं करूंगा; यह इसका अभीष्ट उद्देश्य नहीं है। दरअसल, टोकन आजीवन स्वयं एक सुरक्षा सुविधा है। मैं अभी भी इन टोकन के उचित उपयोग के बारे में विवरण की तलाश कर रहा हूं (क्या मैं उन्हें जारी रख सकता हूं? मुझे उन्हें कैसे सुरक्षित करना चाहिए? क्या फेसबुक OAuth 2.0 को मुख्य के अंदर "ताज़ा टोकन" एम्बेड करता है? यदि नहीं, तो यह कहाँ है? / या मैं कैसे रिफ्रेश करता हूं?), लेकिन मुझे पूरा यकीन है कि offline_access सही तरीका नहीं है।
हां, वे समाप्त हो जाते हैं। एक 'एक्सपायर' मान है जो 'access_token' के साथ दिया गया है, और जो मैं बता सकता हूं कि यह लगभग 2 घंटे है। मैं खोज कर रहा हूं, लेकिन मुझे लंबे समय तक समाप्ति का अनुरोध करने का कोई रास्ता नहीं दिख रहा है।
चूंकि मुझे एक ही समस्या थी - बेन बिडिंगटन से इस विषय पर उत्कृष्ट पोस्ट, जिन्होंने गलत टोकन और अनुरोधों को भेजने के लिए सही प्रकार के साथ इस सभी मुद्दों को स्पष्ट किया।
http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/
जब भी उपयोगकर्ता आपकी साइट पर फेसबुक के माध्यम से प्रवेश करता है, तो आप उपयोगकर्ता के टोकन को हमेशा ताज़ा कर सकते हैं। ऑफ़लाइन पहुँच आपको गारंटी नहीं दे सकती है कि आपको जीवन भर का समय टोकन मिल सकता है, जब भी उपयोगकर्ता आपके द्वारा एप्लिकेशन एक्सेस को रद्द करता है या उपयोगकर्ता अपना पासवर्ड बदलता है, टोकन में परिवर्तन होता है।
फेसबुक से उद्धृत http://developers.facebook.com/docs/authentication/
नोट: यदि एप्लिकेशन ने ऑफ़लाइन_अधिक अनुमति का अनुरोध नहीं किया है, तो एक्सेस टोकन समयबद्ध है। उपयोगकर्ता द्वारा फेसबुक से लॉग आउट करने पर समयबद्ध पहुंच टोकन भी अमान्य हो जाता है। यदि एप्लिकेशन ने उपयोगकर्ता से ऑफ़लाइन_ अतिरिक्त अनुमति प्राप्त की है, तो एक्सेस टोकन की समाप्ति नहीं होती है। हालाँकि यह तब अमान्य हो जाता है जब भी उपयोगकर्ता अपना पासवर्ड बदलता है।
मान लें कि आप अपने डेटाबेस में एक उपयोगकर्ता तालिका में उपयोगकर्ता के फेसबुक यूआईडी और एक्सेस टोकन को स्टोर करते हैं, हर बार जब उपयोगकर्ता "फेसबुक के साथ लॉगिन" बटन पर क्लिक करता है, तो आप लॉगिन स्थिति फेसबुक जावास्क्रिप्ट एपीआई की जांच करते हैं, और फिर प्रतिक्रिया से कनेक्शन की स्थिति की जांच करते हैं , यदि उपयोगकर्ता आपकी साइट से जुड़ा है, तो आप तालिका में पहुंच टोकन को अपडेट कर सकते हैं।
एक लंबे समय तक रहने वाले / नॉन एक्सपायरिंग (पृष्ठों) के लिए एक छोटे से जीवित पहुंच टोकन का आदान-प्रदान करने के लिए इसे मारो:
https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN
फेसबुक अकाउंट में लॉग इन करें और अपनी एप्लीकेशन सेटिंग्स (अकाउंट -> एप्लीकेशन सेटिंग -> एप्लीकेशन की अतिरिक्त अनुमति जो आपके अकाउंट का उपयोग करें) को एडिट करें। अनुमति अनचेक करें (मेरा डेटा एक्सेस करें जब मैं एप्लिकेशन का उपयोग नहीं कर रहा हूं (offline_access))। जब आप एप्लिकेशन में लॉग इन करेंगे तो फेस एक नया टोकन जारी करेगा।
बेसिक फेसबुक टोकन लगभग एक घंटे में समाप्त हो जाता है। लेकिन आप लंबे समय तक चलने वाले टोकन पाने के लिए 'एक्सचेंज' टोकन का उपयोग कर सकते हैं https://developers.facebook.com/docs/facebook-login/access-tokens
GET /oauth/access_token?
grant_type=fb_exchange_token&
client_id={app-id}&
client_secret={app-secret}&
fb_exchange_token={short-lived-token}
जब आप फेसबुक ग्राफ एपीआई के साथ बातचीत करते हैं तो निम्नलिखित चीजों की जांच करें।
1) एप्लिकेशन कनेक्ट URL आपके "redirect_uri" कनेक्ट URL का आधार होना चाहिए: - www.x-minds.org/fb/connect/ redirect_uri - www.x-minds.org/fb/connect/redirect 2: आपका "redirect_uri" "दोनों मामलों में समान होना चाहिए (जब आप एक सत्यापन कोड के लिए अनुरोध करते हैं और एक एक्सेस_टोकन के लिए अनुरोध करते हैं) पुनर्निर्देशित करें - www.x-minds.org/fb/connect/redirect 3) जब आप अनुरोध करते हैं तो आपको तर्क को सांकेतिक शब्दों में बदलना चाहिए।" जब आप एक access_token के लिए अनुरोध करते हैं तो access_token 4) को तर्क (type = client_cred) पास नहीं करना चाहिए। प्राधिकरण सर्वर सत्र भाग के बिना एक टोकन जारी करेगा। हम ग्राफ एपीआई में "मुझे" उपनाम के साथ इस टोकन का उपयोग नहीं कर सकते। इस टोकन की लंबाई (40) होगी, लेकिन सत्र भाग वाले टोकन की लंबाई (81) होगी। सत्र भाग के बिना एक पहुंच टोकन कुछ मामलों के साथ काम करेगा
जैसे: - https://graph.facebook.com/ ? access_token = 116122545078207 | EyWJJYqrdgQgV1bfueck320z7MM। लेकिन "मुझे" उर्फ के साथ ग्राफ एपीआई केवल सत्र भाग के साथ टोकन के साथ काम करेगा।
मुझे नहीं पता कि जब टोकन समाप्त हो जाते हैं, लेकिन वे करते हैं, अन्यथा ऑफ़लाइन अनुमति देने का कोई विकल्प नहीं होगा।
वैसे भी, कभी-कभी उपयोगकर्ता को ऑफ़लाइन अनुमति देने की आवश्यकता होती है, यह ओवरकिल है। आपकी आवश्यकताओं के आधार पर, शायद यह पर्याप्त है कि टोकन तब तक वैध रहता है जब तक उपयोगकर्ता के ब्राउज़र में वेबसाइट खोली जाती है। इसके लिए एक सरल उपाय हो सकता है - उपयोगकर्ता को समय-समय पर iframe का उपयोग करते हुए पुन : उपयोग करना: facebook auto re-login fromieiep
मेरे लिए काम किया ...
यह कुछ साल बाद एक उचित है, लेकिन फेसबुक ग्राफ एपीआई एक्सप्लोरर अब एक्सेस टोकन के बगल में थोड़ी जानकारी का प्रतीक है जो आपको एक्सेस टूल ऐप का उपयोग करने की अनुमति देता है, और कुछ महीनों के लिए एपीआई टोकन का विस्तार करता है। विकास के दौरान सहायक हो सकता है।