You are here

function simple_fb_connect_check_permission in Simple FB Connect 7.2

Makes an API call to check if user has granted given permission.

Parameters

Facebook\FacebookSession $fb_session: FacebookSession object.

string $permission_to_check: Permission to check.

Return value

bool True if user has granted given permission. False otherwise.

1 call to simple_fb_connect_check_permission()
simple_fb_connect_return_from_fb in ./simple_fb_connect.module
Page callback for /user/simple-fb-connect/return.

File

./simple_fb_connect.module, line 443
Simple Facebook Login Module for Drupal Sites.

Code

function simple_fb_connect_check_permission(FacebookSession $fb_session, $permission_to_check) {
  try {

    // Make the API call to Facebook.
    $api_version = simple_fb_connect_get_api_version();
    $request = new FacebookRequest($fb_session, 'GET', '/me/permissions', NULL, $api_version);
    $permissions = $request
      ->execute()
      ->getGraphObject()
      ->asArray();
    foreach ($permissions as $permission) {
      if ($permission->permission == $permission_to_check && $permission->status == 'granted') {
        return TRUE;
      }
    }
  } catch (FacebookRequestException $ex) {
    watchdog('simple_fb_connect', 'Error checking permission: FacebookRequestException. Error details: @message', array(
      '@message' => json_encode($ex
        ->getResponse()),
    ), WATCHDOG_WARNING);
  } catch (\Exception $ex) {
    watchdog('simple_fb_connect', 'Error checking permission: Unhandled exception. Error details: @message', array(
      '@message' => $ex
        ->getMessage(),
    ), WATCHDOG_WARNING);
  }

  // We don't have permission or we got an exception during the API call.
  return FALSE;
}