ফেসবুক: স্থায়ী পৃষ্ঠা অ্যাক্সেস টোকেন?


193

আমি এমন একটি প্রকল্পে কাজ করি যার ফেসবুক পৃষ্ঠাগুলি এর অন্যতম ডেটা উত্স হিসাবে রয়েছে। এটি পর্যায়ক্রমে এর থেকে কিছু তথ্য আমদানি করে যার সাথে কোনও জিইউআই জড়িত থাকে না। তারপরে আমরা ইতিমধ্যে আমাদের থাকা ডেটা দেখানোর জন্য একটি ওয়েব অ্যাপ ব্যবহার করি।

সমস্ত তথ্য পাবলিক হয় না। এর অর্থ আমাকে একবারে ডেটা অ্যাক্সেস করতে হবে এবং তারপরে এটি চালিয়ে যেতে হবে। যাইহোক, আমি প্রক্রিয়াটি জানি না এবং এটিতে আমি এখনও কোনও ভাল টিউটোরিয়াল পাইনি। আমি অনুমান করি যে আমার একটি দরকার access_token, আমি কীভাবে পদক্ষেপে এটি ব্যবহারকারীর কাছ থেকে পেতে পারি? ব্যবহারকারী একটি ফেসবুক পৃষ্ঠার প্রশাসক, তিনি কি আমাদের কোনও এফবি অ্যাপ্লিকেশন পৃষ্ঠাতে যুক্ত করতে হবে?

সম্পাদনা: টিপটির জন্য ধন্যবাদ @ পিএফডাব্লু আমি কীভাবে স্থায়ী পৃষ্ঠার অ্যাক্সেস টোকেন পেতে পারি তার টিউটোরিয়াল তৈরি করেছিলাম, এমনকি offline_accessএখন আর নেই।

সম্পাদনা: আমি সবেমাত্র এখানে উত্তর পেয়েছি: এফবি পৃষ্ঠার তথ্য টানতে সার্ভারের জন্য দীর্ঘস্থায়ী এফবি অ্যাক্সেস-টোকেন



এটা নিশ্চিত মনে হচ্ছে। আমার আরও উপাধি রয়েছে, তাঁর আরও বিশদ প্রশ্ন রয়েছে এবং আমাদের দুজনেরই প্রায় একই উত্তর গৃহীত হয়েছে।
ভ্ল্যাক

উত্তর:


638

ফেসবুকের বাড়ানো পৃষ্ঠার টোকেন ডকুমেন্টেশনের নির্দেশাবলী অনুসরণ করে আমি একটি পৃষ্ঠা অ্যাক্সেস টোকেন পেতে পেরেছিলাম যা মেয়াদ শেষ হয় না।

আমি অন্য সবরকম বিবরণ দেওয়া ব্যতীত এই সমস্ত পদক্ষেপের জন্য গ্রাফ এপিআই এক্সপ্লোরার ব্যবহার করার পরামর্শ দিচ্ছি ।

০. ফেসবুক অ্যাপ তৈরি করুন

আপনার যদি ইতিমধ্যে কোনও অ্যাপ থাকে তবে পদক্ষেপ 1 এ যান।

  1. আমার অ্যাপ্লিকেশনগুলিতে যান ।
  2. "+ একটি নতুন অ্যাপ যুক্ত করুন" এ ক্লিক করুন।
  3. একটি ওয়েবসাইট অ্যাপ সেটআপ করুন।

আপনার অনুমতি বা কোনও কিছু পরিবর্তন করার দরকার নেই। আপনার কেবলমাত্র একটি অ্যাপ্লিকেশন দরকার যা আপনার অ্যাক্সেস টোকেনটি সম্পন্ন করার আগে চলে যাবে।

1. ব্যবহারকারীর স্বল্প-লাইভ অ্যাক্সেস টোকন পান

  1. গ্রাফ এপিআই এক্সপ্লোরার এ যান ।
  2. আপনি যে অ্যাপ্লিকেশনটির জন্য অ্যাক্সেস টোকেন পেতে চান তা নির্বাচন করুন ("অ্যাপ্লিকেশন" ড্রপ-ডাউন মেনুতে, "আমার অ্যাপ্লিকেশনগুলি" মেনু নয়)।
  3. "টোকেন পান"> "ব্যবহারকারীর অ্যাক্সেস টোকেন পান" ক্লিক করুন।
  4. পপ-আপে, "বর্ধিত অনুমতিসমূহ" ট্যাবটির অধীনে "পরিচালনা_পৃষ্ঠা" পরীক্ষা করুন।
  5. "অ্যাক্সেস টোকেন পান" ক্লিক করুন।
  6. লক্ষ্য পৃষ্ঠাটি পরিচালনা করতে এমন একটি ফেসবুক অ্যাকাউন্ট থেকে অ্যাক্সেস মঞ্জুর করুন। মনে রাখবেন যে এই ব্যবহারকারী যদি চূড়ান্ত অ্যাক্সেস হারিয়ে ফেলেন তবে কখনই মেয়াদোত্তীর্ণ অ্যাক্সেস টোকেন কাজ করা বন্ধ করে দেবে।

"অ্যাক্সেস টোকেন" ক্ষেত্রে প্রদর্শিত টোকেনটি হ'ল আপনার স্বল্পকালীন অ্যাক্সেস টোকেন।

2. দীর্ঘ-লাইভ অ্যাক্সেস টোকেন উত্পন্ন করুন

ফেসবুক ডক্সের এই নির্দেশাবলী অনুসরণ করে একটি জিইটি অনুরোধ করুন

https://graph.facebook.com/v2.10/oauth/access_token?grant_type=fb_exchange_token&client_id= {APP_ID} & client_secret = {app_secret} & fb_exchange_token = {short_lived_token}

আপনার অ্যাপ্লিকেশনটির আইডি এবং গোপনে প্রবেশ করা এবং পূর্ববর্তী পদক্ষেপে স্বল্প-কালীন টোকেন উত্পন্ন।

আপনি গ্রাফ এপিআই এক্সপ্লোরার ব্যবহার করতে পারবেন না । কোনও কারণে এটি এই অনুরোধটিতে আটকে যায়। আমি মনে করি কারণ এটি প্রতিক্রিয়াটি JSON নয়, তবে একটি কোয়েরি স্ট্রিং। এটি একটি জিইটি অনুরোধ হিসাবে, আপনি কেবল আপনার ব্রাউজারের URL এ যেতে পারেন।

প্রতিক্রিয়াটি দেখতে এইরকম হওয়া উচিত:

access "অ্যাক্সেস_ টোকেন": " এবিসি 123 ", "টোকেন_ টাইপ": "ধারক", "মেয়াদ উত্তীর্ণ_": 5183791}

"ABC123" আপনার দীর্ঘকালীন অ্যাক্সেস টোকেন হবে। আপনি এটি যাচাই করতে অ্যাক্সেস টোকেন ডিবাগারে রাখতে পারেন। "মেয়াদ শেষ" এর অধীনে এর "2 মাস" এর মতো কিছু হওয়া উচিত।

৩. ব্যবহারকারীর আইডি পান

দীর্ঘকালীন অ্যাক্সেস টোকেন ব্যবহার করে, একটি জিইটি অনুরোধ করুন

https: //راف.facebook.com/v2.10/me?access_token= {দীর্ঘ_আলিভ_অ্যাক্সেস_ টোকেন}

idক্ষেত্র আপনার অ্যাকাউন্টে আইডি নয়। পরবর্তী পদক্ষেপের জন্য আপনার এটির প্রয়োজন হবে।

৪. স্থায়ী পৃষ্ঠা অ্যাক্সেস টোকন পান

একটি GET অনুরোধ করুন

https: // راف.facebook.com/v2.10/ { অ্যাকাউন্ট_ id} / অ্যাকাউন্টস? অ্যাক্সেস_ টোকেন = {দীর্ঘ_জীবিত_অ্যাক্সেস_ টোকেন}

JSON প্রতিক্রিয়াটির এমন একটি dataক্ষেত্র থাকা উচিত যার অধীনে ব্যবহারকারীর কাছে থাকা আইটেমগুলির একটি অ্যারে। আপনি যে পৃষ্ঠা থেকে স্থায়ী অ্যাক্সেস টোকেন চান তার আইটেমটি সন্ধান করুন। access_tokenক্ষেত্রটিকে অবশ্যই আপনার স্থায়ী অ্যাক্সেস টোকেন থাকা উচিত। এটি অনুলিপি করুন এবং এটি অ্যাক্সেস টোকন ডিবাগারে পরীক্ষা করুন । "মেয়াদ শেষ" এর অধীনে এটি "কখনই নয়" বলা উচিত।


14
ফেসবুক এটিকে গোলমাল করেছে তাই এটি আর কাজ করে না। :-( উপরে 1.5 ধাপ পরে ("অ্যাক্সেস টোকেন পান" বোতামে ক্লিক করুন) নীচে একটি লাল সতর্কতা নীচে কথোপকথনে উপস্থিত হয়েছে "লগইন রিভিউয়ের জন্য জমা দিন - নীচের কিছু অনুমতি ফেসবুক দ্বারা ব্যবহারের জন্য অনুমোদিত হয়নি" এবং একটি "এটি অ্যাপ্লিকেশনটিকে ফেসবুকে পোস্ট করতে দেয় না" পাঠ্যটির সাথে নীচে একই সাথে উপস্থিত হতে পারে So সুতরাং উপরের 1.5 এবং 1.6 ধাপের মধ্যে একটি নতুন পদক্ষেপ shouldোকানো উচিত, "আপনার অ্যাপ্লিকেশনটির সাথে প্রচুর ক্লান্তিকর sh * টি করুন," তারপরে এটি পর্যালোচনার জন্য জমা দিন, তারপরে প্রার্থনা করুন এবং অপেক্ষা করুন "" :-( খাঁটি পরীক্ষামূলক অ্যাপ্লিকেশনটির জন্য যে কেউ এর চারপাশের কোনও উপায় জানেন?
প্রশ্ন

10
যে কেউ শেষ পদক্ষেপে যায় এবং ব্রাউজারটি কেবল ফিরে আসে: message: "(#100) Tried accessing nonexisting field (accounts) on node type (Page)", type: "OAuthException", code: 100 এফবি অ্যাক্সেস টোকেন ডিবাগারে যান এবং আপনার দীর্ঘ_জীবিত_অ্যাক্সেস_ টোকেন পরীক্ষা করুন। ধারাবাহিকভাবে আমি দেখেছি যে কয়েক মিনিটের পরে, আপনি যদি ফিরে যান এবং এফবি অ্যাক্সেস টোকেন ডিবাগারটি দীর্ঘ_জীবিত_অ্যাক্সেস_ টোকেনটি পরীক্ষা করেন তবে তা টোকেন স্থায়ী হবে (মেয়াদ শেষ হবে: কখনই নয়)
অ্যাডজুনেক্টপ্রসফেসরফ্যালকন

14
আমি শপথ করছি, যদি আমি এই উত্তরটি না পড়ি, তবে আমি স্বল্প সময়ের জন্য টোকেন দিয়ে আমার মাথাটি প্রাচীরের কাছে বেঁধে রাখতাম ... শেষের অংশটি কাজ করছে না ... আমি (#100) Tried accessing nonexisting field (accounts) on node type (Page)ত্রুটি পেয়ে যাচ্ছি .. ... পদক্ষেপ 5 নিয়ে এগিয়ে যেতে অক্ষম ... তবুও, আপনাকে ধন্যবাদ ... এলই: @ ভ্যালাস্কের দেওয়া উত্তরের শেষ অংশটি পরীক্ষা করে দেখুন। আপনি / {পেজ আইড}? ক্ষেত্রগুলি = অ্যাক্সেস_ টোকেন এবং অ্যাক্সেস_ টোকেন = {দীর্ঘ_লিভড_অ্যাক্সেস_ টোকেন} তাই সমস্যা স্থির করে স্থায়ী অ্যাক্সেস টোকন পেতে পারেন।
মুজনই গায়ুলা তমাস

15
আমার স্থায়ী অ্যাক্সেস টোকেন পেতে চূড়ান্ত পদক্ষেপের জন্য এটি ব্যবহার করতে হয়েছিল কারণ এটি "অ্যাকাউন্টগুলি" উপস্থিত নেই, এমনকি ভি ২..7:https://graph.facebook.com/v2.7/{page_id}?fields=access_token&access_token={long_lived_access_token}
রিডো

5
শেষ ধাপে আমি নিম্নলিখিত ব্যতিক্রমটি পাচ্ছি {"ত্রুটি": message "বার্তা": "সিন্ট্যাক্স ত্রুটি character" অক্ষরের 11 এ string "? \" এর পরিবর্তে স্ট্রিংয়ের শেষের প্রত্যাশা: অ্যাক্সেস_টোক 200 u200c c u200bn " , "টাইপ": "OAuthException", "কোড": 2500, "fbtrace_id": "A8 + gtSaShIO"} it যে কেউ এটি সমাধান করতে জানেন কি ????
লুসি

89

কেবলমাত্র গ্রাফ এপিআই এক্সপ্লোরার এবং অ্যাক্সেস টোকেন ডিবাগার ব্যবহার করে আমার সমাধানটি এখানে দেওয়া হয়েছে :

  1. গ্রাফ এপিআই এক্সপ্লোরার:
    • উপরের ডান ড্রপডাউন মেনু থেকে আপনার অ্যাপ নির্বাচন করুন Select
    • ড্রপডাউন (অ্যাক্সেস টোকেন ক্ষেত্রের ডান) থেকে "ব্যবহারকারীর অ্যাক্সেস টোকেন পান" নির্বাচন করুন এবং প্রয়োজনীয় অনুমতিগুলি নির্বাচন করুন
    • ব্যবহারকারী অ্যাক্সেস টোকেন অনুলিপি করুন
  2. টোকেন ডিবাগার অ্যাক্সেস করুন:
    • টোকেন অনুলিপি করুন এবং "ডিবাগ" টিপুন
    • "প্রসারিত অ্যাক্সেস টোকন" টিপুন এবং উত্পন্ন দীর্ঘকালীন ব্যবহারকারী অ্যাক্সেস টোকনটি অনুলিপি করুন
  3. গ্রাফ এপিআই এক্সপ্লোরার:
    • "অ্যাক্সেস টোকেন" ক্ষেত্রে টোকেন অনুলিপি করুন
    • "PAGE_ID? ক্ষেত্রগুলি = অ্যাক্সেস_ টোকেন" দিয়ে একটি জিইটি অনুরোধ করুন
    • প্রতিক্রিয়াটিতে স্থায়ী পৃষ্ঠার অ্যাক্সেস টোকনটি সন্ধান করুন (নোড "অ্যাক্সেস_ টোকেন")
  4. (Ptionচ্ছিক) অ্যাক্সেস টোকেন ডিবাগার:
    • স্থায়ী টোকেন আটকান এবং "ডিবাগ" টিপুন
    • "মেয়াদ শেষ" হওয়া উচিত "কখনই" না

(এপিআই সংস্করণ 2.9-2.11, 3.0-3.1 সঙ্গে পরীক্ষিত)


3
টিপতে কোনও "প্রসারিত অ্যাক্সেস টোকন" বোতাম নেই is তারা এটিকে বাইরে নিয়ে যেতে পারে।
সিজার বিলিচ

4
আমি "প্রসারিত" বোতামটি দেখছি
এডুয়ার্ডো

2
অ্যাক্সেস টোকেন (ধাপ ২) প্রসারিত করার পরে এবং এটি আবার ডিবাগ করার পরে এটি কখনই মেয়াদ শেষ হবে না। আপনি কেবল 3 এবং 4 ধাপ পেরিয়ে যেতে পারেন
ড্যানিয়েল_সেরেটি

1
এই উত্তরটির জন্য ধন্যবাদ উপরের বড়টির চেয়ে আরও সহজ বোঝার জন্য। এটা সত্যিই সহায়ক ছিল।
পল লাফিট

2
ওহ, বন্ধু, আপনি আগুনে আছেন! অনেক ধন্যবাদ! এই বিকল্পটি খুঁজতে আমি অনেক সময় নষ্ট করেছি, কারণ আমি কোনও অ্যাপ্লিকেশন সঠিকভাবে ডিবাগ করতে পারিনি!
কিলুমিনাতি

11

Vlasec উত্তরের প্রস্তাবিত পদক্ষেপগুলি ছাড়াও , আপনি ব্যবহার করতে পারেন:


3
এটি আর কাজ করে না। টোকেনটি কেবল এক ঘন্টা স্থায়ী হয়
16'16

@ ফ্ল্যাশসনেক আপনি কি সত্যই ভি -২.৮ এ পরীক্ষা করেছেন? টোকেন ডিবাগার দেখায় কখনই মেয়াদ শেষ হয় না
বিজমতে

মনে নেই। আমি এটি পরীক্ষা করতে পারে।
ফ্ল্যাশসেক

11

এটিকে আরও সহজ করার জন্য আমি একটি পিএইচপি স্ক্রিপ্ট তৈরি করেছি। একটি অ্যাপ তৈরি করুন । ইন গ্রাফ এপিআই এক্সপ্লোরার নিজের অ্যাপ্লিকেশনটি নির্বাচন করুন ও manage_pages এবং publish_pages অনুমতি নিয়ে টোকেন একটি ব্যবহারকারী পেতে। আপনার পৃষ্ঠার আইডি এটির পৃষ্ঠার নীচে সন্ধান করুন। কনফিগারেশন ভারগুলি পূরণ করুন এবং স্ক্রিপ্টটি চালান।

<?php
$args=[
    'usertoken'=>'',
    'appid'=>'',
    'appsecret'=>'',
    'pageid'=>''
];

echo generate_token($args);

function generate_token($args){
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.8/oauth/access_token?grant_type=fb_exchange_token&client_id={$args['appid']}&client_secret={$args['appsecret']}&fb_exchange_token={$args['usertoken']}")); // get long-lived token
    $longtoken=$r->access_token;
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.8/me?access_token={$longtoken}")); // get user id
    $userid=$r->id;
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.8/{$userid}/accounts?access_token={$longtoken}")); // get permanent token
    foreach($r->data as $d) if($d->id==$args['pageid']) return $d->access_token;
}

1
+1 স্রেফ চেষ্টা করেছেন এবং এই সমস্ত আংশিক হ্রাসকারী উত্তরের মধ্যে, এটি আশ্চর্যজনকভাবে কাজ করে! আমি এই উত্তরটি পছন্দ করি কারণ এখানে এবং সেখানে সামান্য সম্পাদনা করে ভবিষ্যতের পরিবর্তনগুলি সহজ।
সিদ্ধন্ত রিমাল

দুঃখিত, আমাকে এই উত্তরটি সম্পাদনা করার অনুমতি দেওয়া হয়নি। সুতরাং, গ্রাফ এপিআই 2.9 এর জন্য, আমি পরিবর্তে অন্য উত্তর লিখেছি ।
সিদ্ধন্ত রিমাল

দেখে মনে হচ্ছে যে তারা 2.9 দিয়ে স্টাফ পরিবর্তন করেছে কারণ এই উদাহরণগুলির
কোনওটিই

10

জীবন আরও সহজ করার জন্য আরেকটি পিএইচপি উত্তর। ফেসবুক গ্রাফ এপিআই 2.9 এর জন্য আপডেট হয়েছে । শুধু পূরণ করুন এবং লোড করুন।

<?php
$args=[
/*-- Permanent access token generator for Facebook Graph API version 2.9 --*/
//Instructions: Fill Input Area below and then run this php file
/*-- INPUT AREA START --*/
    'usertoken'=>'',
    'appid'=>'',
    'appsecret'=>'',
    'pageid'=>''
/*-- INPUT AREA END --*/
];
echo 'Permanent access token is: <input type="text" value="'.generate_token($args).'"></input>';
function generate_token($args){
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.9/oauth/access_token?grant_type=fb_exchange_token&client_id={$args['appid']}&client_secret={$args['appsecret']}&fb_exchange_token={$args['usertoken']}")); // get long-lived token
    $longtoken=$r->access_token;
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.9/me?access_token={$longtoken}")); // get user id
    $userid=$r->id;
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.9/{$userid}?fields=access_token&access_token={$longtoken}")); // get permanent token
    if($r->id==$args['pageid']) $finaltoken=$r->access_token;
    return $finaltoken;
}
?>

সংযোজন: (বিকল্প)

গ্রাফ ২.৯ এর পরে, অল্প অ্যাক্সেস টোকনটি ডিবাগ করার পরে আপনি অ্যাক্সেস টোকেন ডিবাগার সরঞ্জামটির নীচে কেবল প্রসারিত অ্যাক্সেস টোকেন ক্লিক করে দীর্ঘ অ্যাক্সেস টোকেন পাওয়ার ঝামেলা অনেকটা এড়িয়ে যেতে পারেন । স্থায়ী অ্যাক্সেস টোকেন পেতে এবং সম্পর্কে তথ্যের সাথে সজ্জিত, নীচের পিএইচপি চালান।pageidlonglivedtoken

<?php
$args=[
/*-- Permanent access token generator for Facebook Graph API version 2.9 --*/
//Instructions: Fill Input Area below and then run this php file
/*-- INPUT AREA START --*/
    'longlivedtoken'=>'',
    'pageid'=>''
/*-- INPUT AREA END --*/
];
echo 'Permanent access token is: <input type="text" value="'.generate_token($args).'"></input>';
function generate_token($args){
$r=json_decode(file_get_contents("https://graph.facebook.com/v2.9/{$args['pageid']}?fields=access_token&access_token={$args['longlivedtoken']}"));
return $r->access_token;
}
?>

যদিও দ্বিতীয় কোডটি আপনাকে অনেক ঝামেলা বাঁচায়, আমি আপনাকে খুব তাড়াতাড়ি না হলে প্রথম পিএইচপি কোডটি চালানোর পরামর্শ দিচ্ছি কারণ এটি পেজিড এবং ইউজারিডকে ক্রস করে তোলে। আপনি যদি ভুল করে ব্যবহারকারী টোকেন চয়ন করেন তবে দ্বিতীয় কোডটি কাজ শেষ করবে না।

ধন্যবাদ dw1 এবং রবকে


প্রসারিত অ্যাক্সেস টোকেন বোতামটি নেই, আমি কি কিছু মিস করছি?
সিজার বিলিচ

@ সিজারবিলিচ: আপনাকে প্রথমে একটি শর্ট এক্সেস টোকেন ডিবাগ করতে হবে। আপনি যখন একটি সংক্ষিপ্ত অ্যাপ টোকেন ডিবাগ করবেন তখন ফলাফলের নীচে এটি উপস্থিত হয় । যেহেতু আপনি এটি দেখতে পাচ্ছেন না, তাই আপনি অবশ্যই একটি ব্যবহারকারী অ্যাক্সেস টোকেন ডিবাগ করেছেন। দ্রষ্টব্য যে এই উত্তর অ্যাক্সেস টোকেন ব্যবহার করতে প্রযোজ্য নয়; শুধুমাত্র অ্যাপ্লিকেশন অ্যাক্সেস টোকেন ব্যবহার করা যেতে পারে ব্যবহারকারী অ্যাসেস টোকেন স্থায়ী হতে পারে না। এগুলি লং টোকেন পর্যন্ত উত্পাদিত হতে পারে।
সিদ্ধন্ত রিমাল

1
@ সিজারবিয়েলিচ আমি মনে করি আপনি এখানে কিছু বিভ্রান্ত করছেন। আপনি ব্যবহারকারী, অ্যাপ্লিকেশন এবং পৃষ্ঠাগুলির জন্য অ্যাক্সেস টোকেন তৈরি করতে পারেন। টোকেনের অনুরোধ করার আগে অ্যাপ্লিকেশন ক্ষেত্রে পরিবর্তে আপনার তৈরি করা একটি অ্যাপ্লিকেশন বেছে নেওয়া দরকার Graph API Explorer
সিদ্ধন্ত রিমাল

@ সিজারবিলিচ: দ্বিতীয়টি যদি আপনার পক্ষে খুব বিভ্রান্ত হয় তবে প্রথম পদ্ধতিটি ব্যবহার করুন। আপনি কেবল প্রথমটিতে ইনপুট ক্ষেত্রগুলি পূরণ করুন এবং সবকিছু স্বয়ংক্রিয়ভাবে ঘটে :)
সিদ্ধন্ত রিমাল

দুঃখিত আমি গত রাতে খুব ভাল করে তৈরি একটি আলাদা পোস্ট সম্পর্কে মন্তব্য করছি। হ্যাঁ কিছু কারণে আমি আপনার কাজ করতে পারি না এবং আমাকে কখনই মেয়াদ উত্তীর্ণ হওয়ার টোকেন হিসাবে পরিণত করতে পারি না। v2.9দ্বিতীয় কলটিতে আমাকে অপসারণ করতে হয়েছিল এবং এটি আমার জন্য কাজ করেছিল। Wierd
সিজার বিলিচ

6

আমি এই পদক্ষেপগুলি চেষ্টা করেছি: https://developers.facebook.com/docs/marketing-api/access# راف- api-explorer

স্থায়ী পৃষ্ঠা অ্যাক্সেস টোকন পান

  • গ্রাফ এপিআই এক্সপ্লোরার এ যান
  • আপনার নির্বাচন অ্যাপ্লিকেশন মধ্যে আবেদন
  • দীর্ঘস্থায়ী এক্সেস মধ্যে টোকেনটি আটকান অ্যাক্সেস টোকেন
  • অ্যাক্সেস টোকেনের পাশে , আপনি যে পৃষ্ঠাটির জন্য অ্যাক্সেস টোকেন চান তা চয়ন করুন। অ্যাক্সেস টোকেনটি একটি নতুন স্ট্রিং হিসাবে উপস্থিত হবে।
  • এই অ্যাক্সেস টোকেনের বৈশিষ্ট্যগুলি দেখতে আমি ক্লিক করুন
  • বৈশিষ্ট্যগুলি পরীক্ষা করতে "অ্যাক্সেস টোকেন ডিবাগার" সরঞ্জামটি খুলতে আবার "ওপস ইন এক্সেস টোকেন টুল" বোতামটি ক্লিক করুন

একটি পরামর্শ, পৃষ্ঠার ভাষাটি ইংরেজী হলে এটি কেবল আমার জন্য কাজ করেছিল ।


1
এই লোক!!! 5 ভার্চুয়াল বিয়ার এটি অনুমোদিত উত্তরের 5 ধাপ প্রতিস্থাপনের কাজ করে। গ্রাফ সংস্করণ ২.৮
রুট -

1
আমি ফেসবুক এপিআই ব্যবহার করতে সক্ষম হতে কয়েক সপ্তাহ নষ্ট করেছি। এটি আজ অবধি আমার মধ্যে সবচেয়ে বিভ্রান্তিকর এবং বেমানান টোকেন এসেছে। এই সমাধানটি এখনও পুরোপুরি
কার্যকরভাবে

4

আপনি যদি কেবল পৃষ্ঠার ডেটার জন্য অনুরোধ করে থাকেন তবে আপনি একটি পৃষ্ঠা অ্যাক্সেস টোকেন ব্যবহার করতে পারেন। ব্যবহারকারীর অ্যাক্সেস টোকেন পেতে আপনাকে কেবল একবার ব্যবহারকারীকে অনুমোদন করতে হবে; এটি দুই মাসের মেয়াদ পর্যন্ত বাড়িয়ে দিন পৃষ্ঠার জন্য টোকেনের জন্য অনুরোধ করুন। এটি সমস্ত পরিস্থিতি 5 এ ব্যাখ্যা করা হয়েছে । দ্রষ্টব্য, যে অধিগ্রহণ করা পৃষ্ঠা অ্যাক্সেস টোকেন কেবল ততক্ষণ বৈধ যখন ব্যবহারকারীর অ্যাক্সেস টোকেন বৈধ is


দুঃখিত, আমি যথেষ্ট পরিষ্কার ছিল না। আমি টোকেন সম্পর্কে পড়েছি, আমাকে কেবল ব্যবহারকারীকে অনুমতি চাইতে এবং আমার অ্যাপে একটি টোকেন স্থানান্তর করতে শিখতে হবে। মনে হচ্ছে কিছু ফেসবুক "অ্যাপ" তৈরি করা দরকার যার একমাত্র উদ্দেশ্য অনুমতি চাইছে, তা কি ঠিক?
Vlasec

1
একটি অ্যাক্সেস একটি অ্যাপ্লিকেশন মাধ্যমে হয় টোকেন পাওয়ার একমাত্র উপায় সংশোধন @Viasec এখানে ব্যাখ্যা developers.facebook.com/docs/facebook-login
phwd

ধন্যবাদ, আমি অবশ্যই এটিকে কোনওভাবে উপেক্ষা করেছি, আমি এটি এপিআই বিভাগে কোথাও থাকতে অনুমান করেছি, যা ভুল ছিল। আমি এটি তাকান, আমি এটি আমার প্রশ্নের উত্তর আশা করি।
Vlasec

4

স্থায়ী অ্যাক্সেস টোকেন পাওয়ার সময় আমি ডোনাটের উল্লেখ অনুসারে উপরে 5 টি পদক্ষেপ অনুসরণ করেছি । তবে 5 তম পদক্ষেপে স্থায়ী অ্যাক্সেস টোকেন তৈরি করার সময় এটির দীর্ঘকালীন অ্যাক্সেস টোকেন (যা 2 মাসের জন্য বৈধ) স্থায়ী অ্যাক্সেস টোকেন নয় (যা কখনই শেষ হয় না) returning আমি যা লক্ষ্য করেছি তা হ'ল গ্রাফ এপিআই-এর বর্তমান সংস্করণটি ভি 2.5। যদি আপনি V2.5 এর স্থায়ী অ্যাক্সেস টোকেনটি পেতে দেয় তবে এর দীর্ঘকালীন অ্যাক্সেস টোকেন পাওয়া যায় V V2.2 দিয়ে API কল করার চেষ্টা করুন (আপনি যদি গ্রাফ এপিআই এক্সপ্লোরারটিতে সংস্করণ পরিবর্তন করতে সক্ষম না হন তবে API কল https টিপুন : ভিগ্রাফেস.ফেসবুক. com/v2.2/ {অ্যাকাউন্ট_আইডি} / অ্যাকাউন্টস? অ্যাক্সেস_ টোকেন = 2 লম্বা_জীবিত_অ্যাক্সেস_ টোকেন V ভি টু সাথে নতুন ট্যাবে) তবে আপনি স্থায়ী অ্যাক্সেস টোকেন পাবেন (যা কখনই শেষ হয় না)


ফলাফল অর্জনের জন্য এপিআই সংস্করণগুলি ফিরে ফিরে আসার ফলে ভবিষ্যতে আমি আরও বেশি কাজ করতে পেরেছি, বিশেষত যেহেতু এপিআই সংস্করণ একটি নির্দিষ্ট সময়ের পরে শেষ হয়।
স্লিকরেমিক্স


3

উল্লিখিত পদ্ধতিগুলি ছাড়াও এটি উল্লেখযোগ্য যে সার্ভার-টু-সার্ভার অ্যাপ্লিকেশনগুলির জন্য, আপনি স্থায়ী অ্যাক্সেস টোকেনের এই ফর্মটিও ব্যবহার করতে পারেন: app_id | app_secret এই ধরণের অ্যাক্সেস টোকেনকে অ্যাপ টোকেন বলে। এটি সাধারণত গ্রাফ এপিআই কল করতে ব্যবহৃত হতে পারে এবং আপনার অ্যাপ্লিকেশনটির ব্যাক-এন্ডের মধ্যে সর্বজনীন নোডের জন্য জিজ্ঞাসা করা যেতে পারে। এটি এখানে উল্লেখ করা হয়েছে: https://developers.facebook.com/docs/facebook-login/access-tokens


1
এটি পৃষ্ঠাগুলিতে কোনও ধরণের অ্যাক্সেসের অনুমতি দেয়? আমি মনে করি এটি না এবং সেই ক্ষেত্রে এটি সত্যই প্রশ্নের উত্তর দেয় না।
Vlasec

@ ভ্লাস্যাক এটি আপনাকে একটি সর্বজনীন পোস্টে মন্তব্যগুলি অ্যাক্সেস করার অনুমতি দেয়
আলী গাজানী

1
যদিও এটি বেশিরভাগের পক্ষে যথেষ্ট তবে এটি প্রশ্নের উত্তর দেয় না।
Vlasec

2

@ ডোনটকে ধন্যবাদ আমি জাভাস্ক্রিপ্টে কখনই মেয়াদোত্তীর্ণ অ্যাক্সেস টোকেন পাওয়ার ব্যবস্থা করেছিলাম।

// Initialize exchange
fetch('https://graph.facebook.com/v3.2/oauth/access_token?grant_type=fb_exchange_token&client_id={client_id}&client_secret={client_secret}&fb_exchange_token={short_lived_token}')
.then((data) => {
    return data.json();
})
.then((json) => {
    // Get the user data
    fetch(`https://graph.facebook.com/v3.2/me?access_token=${json.access_token}`)
    .then((data) => {
        return data.json();
    })
    .then((userData) => {
        // Get the page token
        fetch(`https://graph.facebook.com/v3.2/${userData.id}/accounts?access_token=${json.access_token}`)
        .then((data) => {
            return data.json();
        })
        .then((pageToken) => {
            // Save the access token somewhere
            // You'll need it at later point
        })
        .catch((err) => console.error(err))
    })
    .catch((err) => console.error(err))
})
.catch((err) => {
    console.error(err);
})

এবং তারপরে আমি সংরক্ষিত অ্যাক্সেস টোকেনটিকে এভাবে ব্যবহার করেছি

fetch('https://graph.facebook.com/v3.2/{page_id}?fields=fan_count&access_token={token_from_the_data_array}')
.then((data) => {
    return data.json();
})
.then((json) => {
    // Do stuff
})
.catch((err) => console.error(err))

আমি আশা করি যে কেউ এই কোডটি ছাঁটাই করতে পারে কারণ এটি দারুণ অগোছালো তবে এটিই আমি ভাবতে পারি।


2

আপনার যদি ফেসবুকের অ্যাপ থাকে তবে আপনি অ্যাপ-আইডি এবং অ্যাপ-সিক্রেট দিয়ে চেষ্টা করতে পারেন।

পছন্দ:

access_token={your-app_id}|{your-app_secret}

এটি ঘন ঘন টোকেন পরিবর্তন করার প্রয়োজন হবে না।


1

অ্যাপ্লিকেশন অনুরোধের সীমা পৌঁছেছে (# 4) - এফবি এপিআই v2.1 এবং আরও বেশি

এই উত্তরটি আমাকে "আমাদের জন্য চূড়ান্ত উত্তর" বাড়ে এবং তাই এটি খুব বেশি সম্পর্কিত তাই আমি এটিকে এখানে যুক্ত করছি। যদিও এটি উপরের সাথে সম্পর্কিত এটি পৃথক এবং এটি মনে হয় যে এফবি কিছু প্রক্রিয়াটি সহজ করেছে।

যখন এফবি ভি ২.১ এ পরিণত হয় তখন আমাদের সাইটে আমাদের ভাগ করার গণনাগুলি কাজ বন্ধ করে দেয়। আমাদের ক্ষেত্রে ইতিমধ্যে একটি এফবি অ্যাপ্লিকেশন ছিল এবং আমরা এফবি লগইনটি ব্যবহার করছিলাম না। সুতরাং আমাদের যা করতে হবে তা ছিল নতুন অনুরোধগুলি করার জন্য একটি এফবি অ্যাপ্লিকেশন টোকেন get এটি 23 আগস্ট, 2016 পর্যন্ত।

  1. এখানে যান: https://developers.facebook.com/tools/explorer
  2. এপিআই সংস্করণটি নির্বাচন করুন এবং তারপরে জিইটি ব্যবহার করুন এবং নিম্নলিখিতগুলি আটকে দিন:

    /oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials
    

    আপনি আপনার অ্যাপ্লিকেশন পৃষ্ঠা থেকে আপনার অ্যাপ্লিকেশন আইডি এবং আপনার অ্যাপের গোপনীয়তা পেতে চাইবেন । প্রধান এফবি অ্যাপস বিকাশকারী পৃষ্ঠা

  3. গ্রাফ কোয়েরি চালান এবং আপনি দেখতে পাবেন:

    {
       "access_token": "app-id|app-token",
       "token_type": "bearer"
    }
    

    কোথায়

    "অ্যাপ্লিকেশন-ID"
    এবং
    "অ্যাপ্লিকেশন-টোকেন"
    আপনার এফবি অ্যাপ্লিকেশন পৃষ্ঠা থেকে আপনার অ্যাপ্লিকেশন আইডি এবং আপনি সবেমাত্র জেনারেটেড এফবি অ্যাপ্লিকেশন হ্যাশ পাবেন।

  4. এরপরে আপনার নতুন অ্যাপ্লিকেশন অ্যাক্সেস টোকেনটি পরীক্ষা করুন: এফবি অ্যাক্সেস টোকেন পরীক্ষক

  5. আপনি দেখতে হবে, আটকানো দ্বারা

    "অ্যাপ্লিকেশন-টোকেন"
    টোকেন পরীক্ষকটিতে, মেয়াদ শেষ হওয়ার তারিখ / সময় ছাড়াই একক অ্যাপ্লিকেশন টোকেন।

আমাদের ক্ষেত্রে আমরা FB js sdk ব্যবহার করছি তাই আমরা আমাদের কলটিকে এমনভাবে পরিবর্তন করেছি (দয়া করে নোট করুন যে এটি কেবল ভাগের গণনা পায় এবং শেয়ার ও মন্তব্য গণনাটি এটির মতো মিলিত হয় না) :

FB.api(
    '/','GET',{
    // this is our FB app token for our FB app 
        access_token: FBAppToken,
        "id":"{$shareUrl}","fields":"id,og_object{ engagement }"
}

এটি এখন সঠিকভাবে কাজ করছে। আমাদের এফবি এপিআইকে টোকেনাইজড অনুরোধ করা শুরু করতে হবে তা নিশ্চিত করতে এটি অনেক অনুসন্ধান এবং এফবি সহ একটি অফিসিয়াল বাগ রিপোর্ট গ্রহণ করেছে took সরাইয়া হিসাবে আমি অনুরোধ করেছি যে তারা (এফবি) ত্রুটি কোডে একটি চিহ্ন যুক্ত করুন (# 4) যাতে টোকেনযুক্ত অনুরোধটির উল্লেখ রয়েছে।

আমি কেবল আমাদের ডিভসের একটির কাছ থেকে অন্য একটি প্রতিবেদন পেয়েছি যে টোকেনাইজড অনুরোধগুলির জন্য নতুন প্রয়োজনের কারণে আমাদের এফবি কমেন্টের গণনাটিও ভেঙে গেছে সুতরাং আমি সে অনুযায়ী এটি আপডেট করব।


1
এটি সর্বদা অ্যাপটির ব্যবহারকারী যারা লগইন করেছিলেন এবং অ্যাপটিকে অ্যাক্সেসের অনুমতি দিয়েছিলেন। যাইহোক, এটি কোনও পৃষ্ঠা অ্যাক্সেস টোকেন তৈরি করে বলে মনে হচ্ছে না, তাই আমি মনে করি এটি প্রশ্নের কোনও বৈধ উত্তর নয়। যদিও আকর্ষণীয় - সম্ভবত নিজের একটি প্রশ্ন / এ তৈরি করতে পারেন?
ভ্লাস্যাক

1

এই উদাহরণগুলির মধ্যে অনেকগুলি কাজ করে না, এটি নিশ্চিত না যে এটি 2.9v এর কারণেই বেরিয়ে এসেছে তবে আমি আমার মাথাটি বেধে ছিল। যাইহোক আমি @ dw1 সংস্করণটি নিয়েছি এবং @ কেফঙ্ক ভিডিওটির সহায়তায় এটি কিছুটা সংশোধন করেছি এবং এটি আমার জন্য ২.৯-এর জন্য কাজ করেছে। আশাকরি এটা সাহায্য করবে.

$args=[
/*-- Permanent access token generator for Facebook Graph API version 2.9 --*/
//Instructions: Fill Input Area below and then run this php file
/*-- INPUT AREA START --*/
    'usertoken'=>'',
    'appid'=>'',
    'appsecret'=>'',
    'pageid'=>''
/*-- INPUT AREA END --*/
];
echo 'Permanent access token is: <input type="text" value="'.generate_token($args).'"></input>';
function generate_token($args){
    $r = json_decode(file_get_contents("https://graph.facebook.com/v2.9/oauth/access_token?grant_type=fb_exchange_token&client_id={$args['appid']}&client_secret={$args['appsecret']}&fb_exchange_token={$args['usertoken']}")); // get long-lived token
    $longtoken=$r->access_token;
    $r=json_decode(file_get_contents("https://graph.facebook.com/{$args['pageid']}?fields=access_token&access_token={$longtoken}")); // get user id
    $finaltoken=$r->access_token;
    return $finaltoken;
}

চমৎকার স্নিপেট, তবে এই প্রশ্নটি কীভাবে পিএইচপিতে এটি তৈরি করবেন তা নয়, তবে নিজেই কীভাবে এপিআই ব্যবহার করবেন, যা জাভা বা। নেট এও করা যেতে পারে। উদাহরণস্বরূপ জাভাতে আমার এটি করা দরকার ছিল। পিএইচপি ব্যবহার না করে তাদের জন্য সিউডোকোড বা ধাপে ধাপে গাইড আরও কার্যকর হবে।
ভ্লাস্যাক

2
@ ভ্যালাস্ক আমি যুক্তি দিয়েছি যে এই পিএইচপি স্নিপেট যে কোনও সিউডো কোডের খুব কাছাকাছি এবং এটি বোঝা খুব সহজ। ক্যাসার স্রেফ এমন কিছু এপিআই ব্যবহার করছে যা ফেসবুকের মাধ্যমে ইতিমধ্যে সরবরাহ করা হয়েছে। স্টাফের বাকি অংশগুলি স্ব-বর্ণনামূলক।
সিদ্ধন্ত রিমাল

0

২০২০ সালের এপ্রিল পর্যন্ত, আমার পূর্ব-স্থায়ী পৃষ্ঠার টোকেনগুলি 1 থেকে 12 ঘন্টার মধ্যে শেষ হতে শুরু করে। আমি manage_pagesপূর্বের লক্ষ্য অর্জনের অনুমতি নিয়ে ব্যবহারকারীর টোকেনগুলি ব্যবহার শুরু করেছি (একটি পৃষ্ঠার ইভেন্টগুলি পোলিং)। সেই টোকেনগুলি স্থায়ী বলে মনে হয়।

কোন প্যারামের প্রয়োজনীয়তা রয়েছে এবং কোন স্থায়ী টোকেন প্রাপ্তির জন্য কী পদ্ধতিগুলি কাজ করছে তা ট্র্যাক রাখতে এই পোস্টে পাওয়া তথ্যের ভিত্তিতে আমি পাইথন স্ক্রিপ্ট তৈরি করেছি , github.com/k-funk/facebook_permanent_token এ হোস্ট করা হয়েছে ।


-1

আমি এই উত্তরটি পেয়েছি যা এই সরঞ্জামটিকে বোঝায় যা সত্যই অনেক সাহায্য করেছিল।

আমি আশা করি আপনি যখন এটি পড়বেন তখন এই উত্তরটি কার্যকর হবে।


ঠিক আছে. ডোনাট দ্বারা উত্তর এখনও কাজ করে, বা এটি কিছু অতিরিক্ত পদক্ষেপ প্রয়োজন?
ভ্লাস্যাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.