You are here

function fboauth_action_link_properties in Facebook OAuth (FBOAuth) 7

Same name and namespace in other branches
  1. 6 fboauth.module \fboauth_action_link_properties()
  2. 7.2 fboauth.module \fboauth_action_link_properties()

Return a set of properties suitable for use to a url() call.

2 calls to fboauth_action_link_properties()
fboauth_action_display in ./fboauth.module
Output a Facebook link.
fboauth_action_page in includes/fboauth.fboauth.inc
Menu callback; The main page for processing OAuth login transactions.

File

./fboauth.module, line 341

Code

function fboauth_action_link_properties($action_name, $redirect = NULL, $app_id = NULL) {

  // Use the default App ID if not specified.
  $app_id = isset($app_id) ? $app_id : variable_get('fboauth_id', '');
  $action = fboauth_action_load($action_name);

  // Determine the required permissions for this action.
  if (!empty($action['permissions'])) {
    $permissions = $action['permissions'];
  }
  elseif (!empty($action['properties']) || !empty($action['connections'])) {
    $properties = $action['properties'];
    $connections = $action['connections'];
    $permissions = array_keys(fboauth_user_permissions(array_merge($properties, $connections)));
  }
  else {
    $permissions = array();
  }

  // Build the return query string.
  $query = array();
  if (isset($redirect)) {
    $query['destination'] = $redirect;
  }
  elseif (!empty($_GET['destination'])) {
    $query['destination'] = $_GET['destination'];
  }

  // Remove the destination path if it's pointing to the front page.
  if (isset($query['destination']) && $query['destination'] === variable_get('site_frontpage', 'node')) {
    unset($query['destination']);
  }
  $return = array(
    'query' => array(
      'client_id' => $app_id,
      'redirect_uri' => fboauth_action_url('fboauth/' . $action_name, array(
        'absolute' => TRUE,
        'query' => $query,
      )),
    ),
    'href' => 'https://www.facebook.com/v2.2/dialog/oauth',
  );
  if ($permissions) {
    $return['query']['scope'] = implode(',', $permissions);
  }
  return $return;
}