আমি ফেসবুকে Oauth 2.0 অনুমোদনের সাথে ঘুরে বেড়াচ্ছি এবং ভাবছিলাম ফেসবুকের অ্যাক্সেস টোকেনগুলি শেষ হয়ে যায় কিনা। যদি তা হয় তবে দীর্ঘমেয়াদী অ্যাক্সেস টোকেনটির জন্য অনুরোধ করার কোনও উপায় আছে কি?
আমি ফেসবুকে Oauth 2.0 অনুমোদনের সাথে ঘুরে বেড়াচ্ছি এবং ভাবছিলাম ফেসবুকের অ্যাক্সেস টোকেনগুলি শেষ হয়ে যায় কিনা। যদি তা হয় তবে দীর্ঘমেয়াদী অ্যাক্সেস টোকেনটির জন্য অনুরোধ করার কোনও উপায় আছে কি?
উত্তর:
কিছুটা খনন করার পরে, আমি এটি খুঁজে পেয়েছি। এটি উত্তর বলে মনে হচ্ছে:
আপডেট (11 / এপ্রিল / 2018)
ফেসবুক পরিবর্তন ঘোষণা (10/04/2018)
ফেসবুক টোকেনের মেয়াদোত্তীকরণ পৃষ্ঠা আপডেট করেছে (10/04/2018)
অফলাইন_অ্যাক্সেস: আপনার অ্যাপ্লিকেশনটি যে কোনও সময় ব্যবহারকারীর পক্ষে অনুমোদিত অনুরোধগুলি সম্পাদন করতে সক্ষম করে। ডিফল্টরূপে, সর্বাধিক অ্যাক্সেস টোকেনগুলি স্বল্প সময়ের মধ্যে পরে মেয়াদ শেষ হয়ে যায় যখন অ্যাপ্লিকেশনগুলি সক্রিয়ভাবে অ্যাপ্লিকেশনটি ব্যবহার করছে তখন কেবল ব্যবহারকারীদের পক্ষ থেকে অনুরোধ করে। এই অনুমতিটি অ্যাক্সেস টোকনকে আমাদের OAuth শেষ পয়েন্টটি দীর্ঘকালীন করে দেয়।
এটির অনুমতি মূল্য অনুরোধ করা হয়েছে।
http://developers.facebook.com/docs/authentication/permissions
হালনাগাদ
অফলাইন_অ্যাক্সেসের অনুমতি কিছুক্ষণ আগে সরানো হয়েছে।
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 শে অক্টোবর, ২০১২ থেকে চিরকালের জন্য অবচয় করা হবে and এবং ব্যবহারকারীকে 60 দিনের দীর্ঘকালীন অ্যাক্সেস টোকন দেওয়া হবে এবং অ্যাক্সেস টোকেনের মেয়াদ শেষ হওয়ার আগে ফেসবুককে জানানো হবে বা আপনি আপনার কাস্টমটি পেতে পারেন ফেসবুক এপিআই থেকে মেয়াদোত্তীর্ণ মান আনার জন্য বিজ্ঞপ্তি কার্যকারিতা ..
নোট করুন যে ফেসবুক এখন টোকেনের পক্ষে অফলাইন_অ্যাক্সেসের অনুমতি হ্রাস করছে যার জন্য আপনি মেয়াদ শেষ করতে "আপগ্রেড" করার জন্য অনুরোধ করতে পারেন। আমি এখন নিজেই এটি নিয়ে কাজ করছি, তাই আমার বলার মতো বেশি কিছু নেই, তবে এই দস্তাবেজটি সহায়তা করতে পারে:
https://developers.facebook.com/docs/offline-access-deprecation/
আমি ওপি হিসাবে একই প্রশ্নটি নিয়ে এখানে এসেছি, তবে অফলাইন_স্যাক্স ব্যবহারের পরামর্শ দেওয়া উত্তরগুলি আমার জন্য লাল পতাকা উত্থাপন করছে।
সুরক্ষার ভিত্তিতে, কোনও ব্যবহারকারীর ফেসবুক অ্যাকাউন্টে অফলাইনে অ্যাক্সেস পাওয়া কেবল একক সাইন অন ব্যবহারের জন্য ফেসবুক ব্যবহারের চেয়ে গুণগতভাবে আলাদা এবং আরও শক্তিশালী এবং হালকাভাবে ব্যবহার করা উচিত নয় (যদি না আপনার সত্যিকারের প্রয়োজন না হয়) যখন কোনও ব্যবহারকারী এই অনুমতি দেয়, "অ্যাপ্লিকেশন" যে কোনও সময় থেকে যে কোনও সময় থেকে ব্যবহারকারীর অ্যাকাউন্ট পরীক্ষা করতে পারে। আমি উদ্ধৃতিগুলিতে "অ্যাপ্লিকেশন" রেখেছি কারণ এটি সত্যিকারের কোনও সরঞ্জাম যার শংসাপত্র রয়েছে - আপনি এমন একটি সামগ্রিক স্যুইট তৈরি করতে পারবেন যা ওয়েব সার্ভারের সাথে কিছুই করতে পারে না যা ব্যবহারকারীর সাথে ভাগ করে নিতে সম্মত তথ্য যা অ্যাক্সেস করতে পারে শংসাপত্র।
আমি এই বৈশিষ্ট্যটি একটি স্বল্প টোকেন আজীবন কাজ করতে ব্যবহার করব না; এটা তার উদ্দেশ্য উদ্দেশ্য নয়। প্রকৃতপক্ষে, টোকেন আজীবন নিজেই একটি সুরক্ষা বৈশিষ্ট্য। আমি এখনও এই টোকেনগুলির যথাযথ ব্যবহার সম্পর্কে বিশদটি খুঁজছি (আমি কী তা অবিরত রাখতে পারি? কীভাবে আমি তাদের নিরাপদ করব / করব? ফেসবুক কী মূল ওপেনটি ওএথ ২.০ "রিফ্রেশ টোকন" এম্বেড করে? যদি তা না হয় তবে এটি কোথায় এবং / অথবা কীভাবে আমি রিফ্রেশ করব?), তবে আমি নিশ্চিত যে অফলাইন_অ্যাক্সেস সঠিক উপায় নয়।
হ্যাঁ, তাদের মেয়াদ ফুরিয়েছে। একটি 'মেয়াদ উত্তীর্ণ' মান রয়েছে যা 'অ্যাক্সেস_ টোকেন' বরাবর উত্তীর্ণ হয় এবং আমি যা বলতে পারি তা থেকে প্রায় 2 ঘন্টা। আমি অনুসন্ধান করছি, কিন্তু দীর্ঘ মেয়াদোত্তীর্ণ সময়ের জন্য অনুরোধ করার কোনও উপায় আমি দেখতে পাচ্ছি না।
যেহেতু আমার একই সমস্যা ছিল - বেন বিডিংটনের কাছ থেকে এই বিষয়ে দুর্দান্ত পোস্টটি দেখুন, যিনি এই সমস্ত বিষয়কে ভুল টোকেন এবং অনুরোধের জন্য প্রেরণের জন্য সঠিক টাইপ দিয়ে ব্যাখ্যা করেছিলেন।
http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/
আপনি যখনই ফেসবুকের মাধ্যমে ব্যবহারকারীরা আপনার সাইটে লগইন করেন আপনি সর্বদা ব্যবহারকারীর অ্যাক্সেস টোকনকে রিফ্রেশ করতে পারেন। অফলাইন অ্যাক্সেস আপনাকে আজীবন অ্যাক্সেস টোকেন পাওয়ার গ্যারান্টি দিতে পারে না, যখনই ব্যবহারকারী আপনাকে অ্যাপ্লিকেশন অ্যাক্সেস প্রত্যাহার করে বা ব্যবহারকারী তার পাসওয়ার্ড পরিবর্তন করে।
ফেসবুক থেকে উদ্ধৃত http://developers.facebook.com/docs/authentication/
দ্রষ্টব্য: যদি অ্যাপ্লিকেশনটি অফলাইন_অ্যাক্সেসের অনুমতি না চেয়ে থাকে তবে অ্যাক্সেস টোকেন সময়সীমাবদ্ধ। ব্যবহারকারী যখন ফেসবুক থেকে লগ আউট করেন তখন সময়-সীমাবদ্ধ অ্যাক্সেস টোকেনটিও অবৈধ হয়ে যায়। যদি অ্যাপ্লিকেশনটি ব্যবহারকারীর কাছ থেকে অফলাইন_অ্যাক্সেসের অনুমতি পেয়ে থাকে তবে অ্যাক্সেস টোকেনটির মেয়াদ শেষ হবে না। তবে এটি অকার্যকর হয়ে যায় যখনই ব্যবহারকারী তার পাসওয়ার্ড পরিবর্তন করে।
ধরে নিন আপনি ব্যবহারকারীর ফেসবুক uid সংরক্ষণ করেছেন এবং আপনার ডাটাবেজে একটি ব্যবহারকারী টেবিলটিতে অ্যাক্সেস টোকেন করেছেন, প্রতিবার ব্যবহারকারী "ফেসবুক উইথ ফেসবুক" বোতামটিতে ক্লিক করলে আপনি ফেসবুক জাভাস্ক্রিপ্ট এপিআই ব্যবহার করে লগইনটি পরীক্ষা করে দেখুন এবং তারপরে প্রতিক্রিয়া থেকে সংযোগের অবস্থাটি পরীক্ষা করে দেখুন , ব্যবহারকারী যদি আপনার সাইটের সাথে সংযুক্ত থাকে তবে আপনি সারণীতে অ্যাক্সেস টোকেন আপডেট করতে পারবেন।
ফেসবুক অ্যাকাউন্টে লগইন করুন এবং আপনার অ্যাপ্লিকেশন সেটিংস সম্পাদনা করুন (অ্যাকাউন্ট -> অ্যাপ্লিকেশন সেটিং -> আপনার অ্যাকাউন্ট ব্যবহার করা অ্যাপ্লিকেশনটির অতিরিক্ত অনুমতি)। অনুমতিটি আনচেক করুন (আমি যখন অ্যাপ্লিকেশনটি ব্যবহার করছি না তখন আমার ডেটা অ্যাক্সেস করুন (অফলাইন_অ্যাক্সেস))। তারপরে আপনি যখন অ্যাপ্লিকেশনটিতে লগ ইন করবেন তখন মুখ একটি নতুন টোকন জারি করবে।
বেসিক ফেসবুক টোকেনটি এক ঘন্টার মধ্যে শেষ হয়। তবে আপনি দীর্ঘমেয়াদী টোকেন পেতে 'এক্সচেঞ্জ' টোকেন ব্যবহার করতে পারেন 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) অ্যাপ্লিকেশন সংযুক্ত ইউআরএল আপনার "redirect_uri" সংযুক্ত URL এর ভিত্তি হওয়া উচিত: - www.x-minds.org/fb/connect/ redirect_uri - www.x-minds.org/fb/connect/redirect 2) আপনার "redirect_uri" "উভয় ক্ষেত্রেই সমান হওয়া উচিত (যখন আপনি যাচাইকরণ কোডের জন্য অনুরোধ করবেন এবং অ্যাক্সেস_ টোকেনের জন্য অনুরোধ করবেন) redirect_uri - www.x-minds.org/fb/connect/redirect 3) আপনি যখন অনুরোধ করবেন তখন আপনাকে আর্গুমেন্টটি এনকোড করা উচিত অ্যাক্সেস_ টোকেন 4) আপনি যখন অ্যাক্সেস_ টোকেনের জন্য অনুরোধ করবেন তখন আর্গুমেন্ট (টাইপ = ক্লায়েন্ট_ক্রেড) পাস করা উচিত নয়। অনুমোদন সার্ভারটি সেশন অংশ ছাড়াই একটি টোকেন জারি করবে। আমরা এই টোকেনটি "me" ওরফে গ্রাফ এপিআইতে ব্যবহার করতে পারি না। এই টোকেনটির দৈর্ঘ্য (40) হবে তবে সেশনের অংশের সাথে একটি টোকেনটির দৈর্ঘ্য (81) থাকবে। সেশন অংশ ব্যতীত অ্যাক্সেস টোকেন কিছু ক্ষেত্রে কাজ করবে
উদাহরণস্বরূপ: - https://ographic.facebook.com/ ? অ্যাক্সেস_ টোকেন = 116122545078207 | EYWJJYqrdgQgV1bfueck320z7mm। তবে "আমি" ওরফে গ্রাফ এপিআই সেশনের অংশের সাথে শুধুমাত্র টোকেন নিয়ে কাজ করবে।
টোকেনগুলি ঠিক কখন শেষ হবে তা আমি জানি না, তবে তারা তা করে, অন্যথায় অফলাইনে অনুমতি দেওয়ার বিকল্প নেই।
যাইহোক, কখনও কখনও ব্যবহারকারীকে অফলাইন অনুমতি দেওয়ার প্রয়োজন হয় ওভারকিল। আপনার প্রয়োজনের উপর নির্ভর করে, সম্ভবত ব্যবহারকারীদের ব্রাউজারে ওয়েবসাইটটি খোলার আগ পর্যন্ত টোকনটি বৈধ থাকবে। এর জন্য একটি সহজ সমাধান হতে পারে - ব্যবহারকারীকে পর্যায়ক্রমে একটি iframe ব্যবহার করে ব্লগ করা: কুকি পিএইচপি থেকে ফেসবুক অটো পুনরায় লগইন করুন
আমার জন্য কাজ ...
এটি বেশ কয়েক বছর পরে, তবে ফেসবুক গ্রাফ এপিআই এক্সপ্লোরার অ্যাক্সেস টোকেনের পাশে এখন একটি সামান্য তথ্য প্রতীক রয়েছে যা আপনাকে অ্যাক্সেস টোকেন সরঞ্জাম অ্যাপ্লিকেশনটি অ্যাক্সেস করতে দেয় এবং কয়েক মাস ধরে এপিআই টোকেন বাড়িয়ে দেয়। উন্নয়নের সময় সহায়ক হতে পারে।