Как получать дополнительные данные от социальных сетей

Недавно я писал про библиотеку работы с социальными сетями. Но для получения дополнительных данных нужно выполнить дополнительные телодвижения. И поскольку я постоянно спотыкаюсь об это дело, то зафиксирую это тут.

Facebook
==========================
Выборка данных, выдаваемая фейсбуком по-умолчанию довольно бедная. Там, например, нет email, который нуже практически всегда. Или например дата рождения. Чтобы их получить нужно определить scope

Например с использованием той OAUTH библиотеки это будет выглядеть так:

	$client = new oauth_client_class;
	$client->server = 'Facebook';
	$client->redirect_uri = 'http://'.$_SERVER['HTTP_HOST'].
		dirname(strtok($_SERVER['REQUEST_URI'],'?')).'/this_script_url.php';

	$client->client_id = 'xxxxxxxxx'; $application_line = __LINE__;
	$client->client_secret = 'xxxxxxxxxxxxxx';

	/* API permissions
	 */
	$client->scope = 'email, user_birthday';

Дополнительные ключи безопасности Facebook можно посмотреть тут

LinkedIn
==========================

Если вы считаете штатную выдачу Facebook малоинформативной — вы не видели штатную выдачу LinkedIn. Там вообще нет ничего, кроме имени пользователя. Для получения нужного набора информации нужно формировать целый запрос, который является частью URL. Не буду приводить весь код, приведу пример URL

'http://api.linkedin.com/v1/people/~:(first-name,last-name,phone-numbers,email-address,main-address,picture-url,date-of-birth,positions:(title,company))',

Подробнее о построении таких запросов для LinkedId смотреть тут: http://developer.linkedin.com/documents/field-selectors
Полное описание параметров запроса : http://developer.linkedin.com/documents/profile-fields