Quantcast
Channel: 10jumps - Drupal Planet
Viewing all articles
Browse latest Browse all 34

LinkedIn Integration with Drupal

$
0
0

How to send Message or Invitation to LinkedIn friends using Linkedin account with Drupal?

 

1)     CreateLinkedIn Application

URL - https://www.linkedin.com/secure/developer

 

·       Create LinkedIn Application 

·       Get Api Key and Secret Key

 

2)      Use following Module for integration

·        Linkedin - http://drupal.org/project/linkedin/

·        OAuth- http://drupal.org/project/oauth

 

Set consumer key and secret Key then authenticate using OAuth. After authentication it will open a connection to LinkedIn. Once connected, you will be able to access the friends and their information.

function connection()

{

$consumer_key = ‘abcde’                      // app key

$consumer_secret = ‘xyz’  // secret key

Send token to oauth for authentication

$consumer = new OAuthConsumer($consumer_key, $consumer_secret, NULL);

$base_url = "https://api.linkedin.com/uas/oauth";

$url = $base_url . "/requestToken";

$signature = new OAuthSignatureMethod_HMAC_SHA1();

 $request = OAuthRequest::from_consumer_and_token($consumer, NULL, 'POST', $url);

   $request->sign_request($signature, $consumer, NULL);

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

$provider = 'linkedin';

 $tokens = db_fetch_array(db_query("SELECT * FROM {linkedin_token} WHERE uid = 120 AND type = 'access'")); // get token key and token secret from query

        $token = array(

            'token_key' => $tokens['token_key'],

            'token_secret' => $tokens['token_secret'],

        ); // get login user token

$result = linkedin_get_fields('http://api.linkedin.com/v1/people/~/connections', $token);

 // $result is array of connection of friends

}

This function sends Message to Friends

Send message()

{

$base_url = "http://api.linkedin.com/v1/people/~/mailbox";

$signature = new OAuthSignatureMethod_HMAC_SHA1();

$consumer_key = ‘c2tqvnglgfyq’                      // app key

$consumer_secret = ‘hGEkm6Gdpc3ibjP9’  // secret key

 $consumer = new OAuthConsumer($consumer_key, $consumer_secret, NULL); 

$token = new OAuthConsumer($tokens['token_key'], $tokens['token_secret'], 1); // user key

$request = OAuthRequest::from_consumer_and_token($consumer, $token, "POST", $base_url);

// send URL

 $request->sign_request($signature, $consumer, $token);

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

 $friends_id=’abcdf43’;

// send you message using xml format

$xml_message_body .= '<?xml version="1.0" encoding="UTF-8"?>';

$xml_message_body .= '<mailbox-item>';

 $xml_message_body .= '<recipients>';

 $xml_message_body .= '<recipient>';

 $xml_message_body .= '<person path="/people/' . $friends_id. '" />';

 $xml_message_body .= '</recipient>';

 $xml_message_body .= '</recipients>';

$xml_message_body .= '<subject>Flexibage Invitation</subject>';

 $xml_message_body .= '<body>http://flexibadge.10jumps.org</body>';

 $xml_message_body .= '</mailbox-item>';

$response = _linkedin_connections_http_request($base_url, $header, $xml_message_body);

}

The LinkedIn connection -  http request function  to post your request  to server.

function _linkedin_connections_http_request($url, $header, $body = NULL) {

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

    curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));

    curl_setopt($ch, CURLOPT_URL, $url);

    if ($body) {

        curl_setopt($ch, CURLOPT_POST, 1);

        if ($body == 'token_request') {

            curl_setopt($ch, CURLOPT_POSTFIELDS, '');

        } else {

            curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

            curl_setopt($ch, CURLOPT_HTTPHEADER, array($header, 'Content-Type: text/xml;charset=utf-8'));

            curl_setopt($ch, CURLOPT_POST, 1);

            // It is important to set request to POST for sending messages.

            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

        }

    }

    // execute the curl call

    $output = curl_exec($ch);

    // get the http response code

    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    // close the curl connection

    curl_close($ch);

    // check for success. An httpd status of 201 inicates success:

    // see https://developer.linkedin.com/documents/messaging-between-connections-api

    if ($http_code == '201') {

        return $http_code;

    } else {

        // otherwise, return the xml $output

        return $output;

    }

}

Viewing all articles
Browse latest Browse all 34

Trending Articles