/**
  * {@inheritdoc}
  *
  * @param string $data
  * @param bool   $postAuthorization
  *
  * @return mixed
  */
 public function parseCallbackResponse($data, $postAuthorization = false)
 {
     if ($postAuthorization) {
         parse_str($data, $values);
         return $values;
     } else {
         return parent::parseCallbackResponse($data, $postAuthorization);
     }
 }
 /**
  * {@inheritdoc}
  *
  * @param string $data
  * @param bool   $postAuthorization
  *
  * @return mixed
  */
 public function parseCallbackResponse($data, $postAuthorization = false)
 {
     // Facebook is inconsistent in that it returns errors as json and data as parameter list
     $values = parent::parseCallbackResponse($data, $postAuthorization);
     if (null === $values) {
         parse_str($data, $values);
         $this->factory->getSession()->set($this->getName() . '_tokenResponse', $values);
     }
     return $values;
 }
 /**
  * {@inheritdoc}
  */
 public function matchFieldName($field, $subfield = '')
 {
     if ($field == "contact" && in_array($subfield, array('facebook', 'twitter'))) {
         return $subfield . 'ProfileHandle';
     }
     return parent::matchFieldName($field, $subfield);
 }