linkedin api php,如何使用PHP获取带有LinkedIn注册API的电子邮件地址

我从一些关于链接注册的教程中获得了这段代码,但是教程只提供了基本信息.我还需要收到用户的电子邮件……我该怎么做?

这是代码:

auth.php

这是我在likesin上访问表单的链接.

session_start();

$config['base_url'] = '';

$config['callback_url'] = '';

$config['linkedin_access'] = '';

$config['linkedin_secret'] = '';

include_once "linkedin.php";

# First step is to initialize with your consumer key and secret. We'll use an out-of-band oauth_callback

$linkedin = new LinkedIn($config['linkedin_access'], $config['linkedin_secret'], $config['callback_url'] );

//$linkedin->debug = true;

# Now we retrieve a request token. It will be set as $linkedin->request_token

$linkedin->getRequestToken();

$_SESSION['requestToken'] = serialize($linkedin->request_token);

# With a request token in hand, we can generate an authorization URL, which we'll direct the user to

//echo "Authorization URL: " . $linkedin->generateAuthorizeUrl() . "\n\n";

header("Location: " . $linkedin->generateAuthorizeUrl()); ?>

demo.php

这是我在注册后获得的脚本.

session_start();

$config['base_url'] = 'http://xxx/linkedin/auth.php';

$config['callback_url'] = 'http://xxx/linkedin/demo.php';

$config['linkedin_access'] = '';

$config['linkedin_secret'] = '';

include_once "linkedin.php";

# First step is to initialize with your consumer key and secret. We'll use an out-of-band oauth_callback

$linkedin = new LinkedIn($config['linkedin_access'], $config['linkedin_secret'], $config['callback_url'] );

//$linkedin->debug = true; if (isset($_REQUEST['oauth_verifier'])){

$_SESSION['oauth_verifier'] = $_REQUEST['oauth_verifier'];

$linkedin->request_token = unserialize($_SESSION['requestToken']);

$linkedin->oauth_verifier = $_SESSION['oauth_verifier'];

$linkedin->getAccessToken($_REQUEST['oauth_verifier']);

$_SESSION['oauth_access_token'] = serialize($linkedin->access_token);

header("Location: " . $config['callback_url']);

exit;} else{

$linkedin->request_token = unserialize($_SESSION['requestToken']);

$linkedin->oauth_verifier = $_SESSION['oauth_verifier'];

$linkedin->access_token = unserialize($_SESSION['oauth_access_token']);}

# You now have a $linkedin->access_token and can make calls on behalf of the current member

$xml_response = $linkedin->getProfile("~:(id,first-name,last-name,headline,picture-url)");

$id = $linkedin->getProfile('~:(id)');

$fname = $linkedin->getProfile('~:(first-name)');

$lname = $linkedin->getProfile('~:(last-name)');

$headline = $linkedin->getProfile('~:(headline)');

$picture = $linkedin->getProfile('~:(picture-url)');

$id = trim(strip_tags($id));

$fname = trim(strip_tags($fname));

$lname = trim(strip_tags($lname));

$headline = trim(strip_tags($headline));

$picture = trim(strip_tags($picture)); ?>

linkedin.php

这是LinkedIn库:

public $base_url = "http://api.linkedin.com";

public $secure_base_url = "https://api.linkedin.com";

public $oauth_callback = "oob";

public $consumer;

public $request_token;

public $access_token;

public $oauth_verifier;

public $signature_method;

public $request_token_path;

public $access_token_path;

public $authorize_path;

function __construct($consumer_key, $consumer_secret, $oauth_callback = NULL)

{

if($oauth_callback) {

$this->oauth_callback = $oauth_callback;

}

$this->consumer = new OAuthConsumer($consumer_key, $consumer_secret, $this->oauth_callback);

$this->signature_method = new OAuthSignatureMethod_HMAC_SHA1();

$this->request_token_path = $this->secure_base_url . "/uas/oauth/requestToken";

$this->access_token_path = $this->secure_base_url . "/uas/oauth/accessToken";

$this->authorize_path = $this->secure_base_url . "/uas/oauth/authorize";

}

function getRequestToken()

{

$consumer = $this->consumer;

$request = OAuthRequest::from_consumer_and_token($consumer, NULL, "GET", $this->request_token_path);

$request->set_parameter("oauth_callback", $this->oauth_callback);

$request->sign_request($this->signature_method, $consumer, NULL);

$headers = Array();

$url = $request->to_url();

$response = $this->httpRequest($url, $headers, "GET");

parse_str($response, $response_params);

$this->request_token = new OAuthConsumer($response_params['oauth_token'], $response_params['oauth_token_secret'], 1);

}

function generateAuthorizeUrl()

{

$consumer = $this->consumer;

$request_token = $this->request_token;

return $this->authorize_path . "?oauth_token=" . $request_token->key;

}

function getAccessToken($oauth_verifier)

{

$request = OAuthRequest::from_consumer_and_token($this->consumer, $this->request_token, "GET", $this->access_token_path);

$request->set_parameter("oauth_verifier", $oauth_verifier);

$request->sign_request($this->signature_method, $this->consumer, $this->request_token);

$headers = Array();

$url = $request->to_url();

$response = $this->httpRequest($url, $headers, "GET");

parse_str($response, $response_params);

$this->access_token = new OAuthConsumer($response_params['oauth_token'], $response_params['oauth_token_secret'], 1);

}

function getProfile($resource = "~")

{

$profile_url = $this->base_url . "/v1/people/" . $resource;

$request = OAuthRequest::from_consumer_and_token($this->consumer, $this->access_token, "GET", $profile_url);

$request->sign_request($this->signature_method, $this->consumer, $this->access_token);

$auth_header = $request->to_header("https://api.linkedin.com"); # this is the realm

# This PHP library doesn't generate the header correctly when a realm is not specified.

# Make sure there is a space and not a comma after OAuth

// $auth_header = preg_replace("/Authorization\: OAuth\,/", "Authorization: OAuth ", $auth_header);

// # Make sure there is a space between OAuth attribute

// $auth_header = preg_replace('/\"\,/', '", ', $auth_header);

// $response will now hold the XML document

$response = $this->httpRequest($profile_url, $auth_header, "GET");

return $response;

}

function setStatus($status)

{

$profile_url = $this->base_url . "/v1/people/~";

$status_url = $this->base_url . "/v1/people/~/current-status";

echo "Setting status...\n";

$xml = "" . htmlspecialchars($status, ENT_NOQUOTES, "UTF-8") . "";

echo $xml . "\n";

$request = OAuthRequest::from_consumer_and_token($this->consumer, $this->access_token, "PUT", $status_url);

$request->sign_request($this->signature_method, $this->consumer, $this->access_token);

$auth_header = $request->to_header("https://api.linkedin.com");

$response = $this->httpRequest($profile_url, $auth_header, "GET");

return $response;

}

# Parameters should be a query string starting with "?"

# Example search("?count=10&start=10&company=LinkedIn");

function search($parameters)

{

$search_url = $this->base_url . "/v1/people-search:(people:(id,first-name,last-name,picture-url,site-standard-profile-request,headline),num-results)" . $parameters;

//$search_url = $this->base_url . "/v1/people-search?keywords=facebook";

echo "Performing search for: " . $parameters . "
";

echo "Search URL: $search_url
";

$request = OAuthRequest::from_consumer_and_token($this->consumer, $this->access_token, "GET", $search_url);

$request->sign_request($this->signature_method, $this->consumer, $this->access_token);

$auth_header = $request->to_header("https://api.linkedin.com");

$response = $this->httpRequest($search_url, $auth_header, "GET");

return $response;

}

function httpRequest($url, $auth_header, $method, $body = NULL)

{

if (!$method) {

$method = "GET";

};

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_HEADER, 0);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_HTTPHEADER, array($auth_header)); // Set the headers.

if ($body) {

curl_setopt($curl, CURLOPT_POST, 1);

curl_setopt($curl, CURLOPT_POSTFIELDS, $body);

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);

curl_setopt($curl, CURLOPT_HTTPHEADER, array($auth_header, "Content-Type: text/xml;charset=utf-8"));

}

$data = curl_exec($curl);

curl_close($curl);

return $data;

}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值