نشر متقاطع على صفحة Facebook باستخدام PHP SDK

تنشر العديد من المواقع معلومات حول مواد جديدة على الشبكات الاجتماعية ، ويمكن القيام بذلك على Facebook. من المفترض أنك قمت بالفعل بإنشاء التطبيق وتحديد المضيفين المسموح بهم لإعادة توجيه OAuth في علامة التبويب "خيارات متقدمة" في عنصر قائمة "الإعدادات". لذلك ، نبدأ الجلسة بوظيفة session_start () ، كل من يحتاج إليها يمكنه تشغيل مخرجات الخطأ إذا تم تعطيله.

error_reporting(E_ALL); ini_set("display_errors", 1); 

بعد ذلك ، قم بتنزيل مكتبة PHP SDK (الموجودة على github) واستخرج مجلد src (والذي يمكن إعادة تسميته). ثم حدد المسار إلى أداة التحميل التلقائي.

 require_once __DIR__ . '/_src/autoload.php'; 

الآن إنشاء مثيل لفئة الفيسبوك.

 $fb = new Facebook\Facebook([ 'app_id' => '1234567890123456', //   id  'app_secret' => '12345678901234567890123456789012' //   ]); 

ندعو المساعد لأداء التفويض ، وتحديد الأذونات المطلوبة للنشر على الصفحة.

 $helper = $fb->getRedirectLoginHelper(); //  publish_actions,     ,      $permissions = ['manage_pages','publish_pages']; $loginUrl = $helper->getLoginUrl('url____', $permissions); echo '<a href="' . htmlspecialchars($loginUrl) . '"></a>'; 

بعد أن تتم إعادة توجيهك إلى موقع Facebook ، حيث ستحتاج إلى تسجيل الدخول ، ستتبع الرابط المحدد في وظيفة getLoginUrl (). هنا ، مرة أخرى ، تتصل بالمساعد الذي تحصل منه على المستخدم access_token.

 $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch(Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph  : ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK  : ' . $e->getMessage(); exit; } if (isset($accessToken)) $_SESSION['facebook_access_token'] = (string) $accessToken; elseif ($helper->getError()) exit; 

إذا حاولت النشر إلى الصفحة باستخدام هذا الرمز المميز ، فسيتم إرجاع خطأ "خطأ في الأذونات" ، حيث يتطلب ذلك رمزًا مميزًا للصفحة. للحصول عليها ، تحتاج إلى استدعاء وظيفة get () الخاصة بكائن Facebook وتمرير معلمتين إليها: عنوان url الخاص بطلب الرمز المميز للصفحة ، والذي يحتوي على معرف الصفحة التي تريد نشرها ومستخدم access_token الذي تم استلامه مسبقًا.

 try { $response = $fb->get('/id_?fields=access_token', $_SESSION['facebook_access_token']); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph  : ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK  : ' . $e->getMessage(); exit; } //  echo $response->getGraphNode()['access_token']; 

سيكون الرمز المميز المستلم مدة غير محدودة. تتوفر معلومات الرمز المميز من خلال المصحح . الآن يمكنك محاولة نشر رسالة.

 $str_page = '/1234567890123456/feed'; $feed = array('message' => ''); try { $response = $fb->post($str_page, $feed, 'access_token_'); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph  : ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK  : ' . $e->getMessage(); exit; } $graphNode = $response->getGraphNode(); echo ', id: ' . $graphNode['id']; 

إذا لزم الأمر ، يمكنك الخروج من Facebook.

 $helper = $fb->getRedirectLoginHelper(); $logoutUrl = $helper->getLogoutUrl($_SESSION['facebook_access_token'], 'url____'); echo '<a href="' . htmlspecialchars($logoutUrl) . '"></a>'; 

Source: https://habr.com/ru/post/ar481482/


All Articles