هل يمكنني تخزين الرمز المميز للوصول إلى Facebook واستخدامه لاحقًا؟

StackOverflow https://stackoverflow.com/questions/4608713

سؤال

أقوم بإنشاء تطبيق ويب (PHP) يستخدم FB Connect. لقد نجحت في تسجيل / تسجيل الدخول إلى المستخدم بمساعدة PHP LIB المقدمة من Facebook. أيضا يمكنني النشر إلى الجدار ، باستخدام هذا الرمز

        Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
    Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;               
    $facebook = new Facebook(array(
      'appId'  => $fb_key,
      'secret' => $fb_secret,
      'cookie' => true, // enable optional cookie support
    ));
    $session = $facebook->getSession();
    if ($session)
    {
        $facebook->api('/me/feed', 'POST', array('message'=>$message, 'link'=>$link['href'], 'name'=>$link['text']));                   
    }

ومع ذلك ، إذا ذهبت يدويًا إلى مدير ملفات تعريف الارتباط في متصفحي وحذف ملف تعريف الارتباط الذي يخزن جلسة FB ، فإن الكود لا يعمل. الشيء الوحيد الذي لدي هو معرف FB الخاص بالمستخدم الذي أقوم بتخزينه في DB. هل هناك أي طريقة لنشر جدار المستخدم حتى إذا فقدت جلسات FB؟ هل من المنطقي تخزين رمز الوصول إلى FB الخاص بالمستخدم في DB للنشر إلى الحائط لاحقًا أم أن الرمز المميز للوصول قصير الأجل نسبيًا؟

فيما يلي مثال قد يحدث في تطبيقي: زر النقر على FB ، يصرح بتطبيقي ، ويتم إعادة توجيهه إلى موقعي حيث أقوم تلقائيًا بإنشاء حساب بناءً في هذا المستخدم لاحقًا. الآن يتصفح الموقع ، ويدخل بعض المعلومات ويتم نشر هذه المعلومات على حائطه. كل شيء على ما يرام حتى الآن لأن متصفح المستخدم يحمل ملف تعريف الارتباط الذي تم إنشاؤه بواسطة FB. الآن يترك المستخدم الموقع ومسؤول موقع جهات الاتصال. يفتح المسؤول متصفحه الخاص ، ويذهب إلى واجهة المسؤول وينشر شيئًا نيابة عن هذا المستخدم. الآن ، امتلاك معرف FB الخاص بهذا المستخدم وافتراض أن المستخدم لم يلغي الأذونات ، هل لا يزال بإمكاني نشر هذا على حائطه؟

هل كانت مفيدة؟

المحلول

تحديث: لم تعد هذه الإجابة صالحة حيث تم إهمال غير متصل.

تحتاج إلى طلب إذن غير متصل. افحص ال أذونات مستند.

تعديل وفقًا للتحديث والتعليقات - يمكن العثور على بعض المعلومات حول إزالة الخطوط غير المتصلة هنا.

نصائح أخرى

مع Facebook PHP SDK V3 (انظر على جيثب) ، من السهل جدًا طلب واستخدام رمز إمكانية الوصول إلى وضع عدم الاتصال. إليكم كيف تفعل ذلك.

احصل على رمز الوصول غير متصل بالإنترنت

أولاً ، يمكنك التحقق مما إذا كان المستخدم قد تم تسجيل الدخول أم لا:

require "facebook.php";
$facebook = new Facebook(array(
  'appId'  => YOUR_APP_ID,
  'secret' => YOUR_APP_SECRET,
));

$user = $facebook->getUser();

if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    $user = null;
  }
}

إذا لم يكن كذلك ، فأنت تقوم بإنشاء عنوان URL "تسجيل الدخول مع Facebook" يطلب offline_access إذن :

if (!$user) {
    $args['scope'] = 'offline_access';
    $loginUrl = $facebook->getLoginUrl($args);
}

ثم عرض الرابط في القالب الخاص بك:

<?php if (!$user): ?>
    <a href="<?php echo $loginUrl ?>">Login with Facebook</a>
<?php endif ?>

بعد ذلك ، عند تسجيل الدخول إلى المستخدم ، يمكنك استرداد رمز الوصول دون اتصال وتخزينه. للحصول عليها ، اتصل:

if ($user) {
    $token = $facebook->getAccessToken();
    // store token
}

استخدم رمز الوصول غير متصل بالإنترنت

لاستخدام رمز الوصول غير متصل عندما لا يتم تسجيل الدخول إلى المستخدم:

require "facebook.php";
$facebook = new Facebook(array(
  'appId'  => YOUR_APP_ID,
  'secret' => YOUR_APP_SECRET,
));

$facebook->setAccessToken("...");

والآن يمكنك إجراء مكالمات API لهذا المستخدم:

$user_profile = $facebook->api('/me');

امل ان يساعد !

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top