Otomatikleştirme Linkedin OAuth istimal Curl ve PHP

0 Cevap php

Ben LinkedIn insanlar için ortak bir arama gerçekleştirmek için LinkedIn giriş kimlik doğrulama işlemini otomatikleştirmek çalışıyorum.

Öncelikle ben ne yaptığımı anlatmaya çalışacağım.

Ben dört dosya kullanıyorum:

  • oAuth.php (gerekli)
  • linkedin.php (php LinkedIn kütüphane)
  • auth.php (ki LinkedIn lib dosyasından OAuth belirteci alır)
  • callback url demo.php?params (başarılı authenticaton sonra, hangi geçerli kullanıcının profilini yazdırır ve arama sonuçları params kullanarak)

Kimlik doğrulama url https://api.linkedin.com/uas/oauth/authorize?oauth_token=$oauthtoken.

İki şey yaptım, ne iş gibi görünüyor; bunlar:

  1. (Ben kundakçı bilmek geldi kullanıcı adı, parola, OAuth token csrfToken, süresi, sourceAlias, vb) alanları gönderme, kimlik doğrulama url gitme sürecini otomatikleştirmek Kıvrılmaları kullanıyorum.

    Burada değiştirmek sadece iki şey (doğrulama url içeriği ayrıştırma) oauth belirteci ve csrfToken vardır. Ben de, her zaman sayfa yük başardı, ve nihayet curl_exec gelen GET yanıtı yazdırmak çalışıyorum.

  2. Sadece e-posta ve şifre göndermek için çalışılıyor, ve bir GET yanıt yazdırmak çalışıyorum.

Burada referans için benim auth.php:

function extract_unit($dizi, $start, $end)
{
    $pos = stripos($dizi, $start);
    $str = substr($dizi, $pos);
    $str_two = substr($str, strlen($start));
    $second_pos = stripos($str_two, $end);
    $str_three = substr($str_two, 0, $second_pos);
    $unit = trim($str_three); // remove whitespaces
    return $unit;
}

session_start();

$config['base_url']             =   'http://linkedin.tweetrank.tk/auth.php';
$config['callback_url']         =   'http://linkedin.tweetrank.tk/demo.php';
$config['linkedin_access']      =   'my key';
$config['linkedin_secret']      =   'my secret';

include_once "linkedin.php";

# First step is to initialize with the 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";

echo $url = $linkedin->generateAuthorizeUrl();
$token = $linkedin->generateAuthorizeToken();
//echo '<br><br>';
$data = file_get_contents($url);
$csrfToken = extract_unit($data,'name="csrfToken" value="','"');

//echo $csrfToken;
//echo $token;
//echo 'https://www.linkedin.com/uas/oauth/authenticate?oauth_token='.$token.'&amp;trk=uas-continue';
// INIT CURL

$postParams = 'email=myemail&password=mypassword&duration=720&authorize=Ok%2C+I%27ll+Allow+It&extra=&access=-3&agree=true&oauth_token='.$token.'&appId=&csrfToken='.$csrfToken.'&sourceAlias=0_8L1usXMS_e_-SfuxXa1idxJ207ESR8hAXKfus4aDeAk';

Şimdi ben curl ile kimlik doğrulama URL ve postParams kullanılır.

0 Cevap