API-интерфейс LinkedIn: проблема с OAuth - PullRequest
1 голос
/ 02 июня 2011

Я использую класс PEAR OAuth для доступа к API разработчика LinkedIn, и я столкнулся с небольшой проблемой.Я могу авторизовать свое приложение, но когда дело доходит до получения accessToken, я получаю эту ошибку:

Редактировать :

Код после предложений Адама

public function oauth_access()
{
    session_start();

    $token = $_GET['oauth_token'];
    $verifier = $_GET['oauth_verifier'];
    $secret = $_SESSION['trequest_token_secret'];

    $key = "****";
    $secret = "****";

    $oauthc = new OAuth($key, $secret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION);

    $oauthc->setToken($token, $secret);
    $oauthc->setNonce(rand());


    try
    {
        $access_token_info = $oauthc->getAccessToken("https://api.linkedin.com/uas/oauth/accessToken");
        $_SESSION['laccess_oauth_token']= $access_token_info['oauth_token'];
        $_SESSION['laccess_oauth_token_secret']= $access_token_info['oauth_token_secret'];
        $_SESSION['loauth_verifier'] = $verifier;

    }
    catch (OAuthException $e)
    {
       echo $e->getMessage();
    }
}

Но теперь я получаю другую ошибку:

Invalid auth/bad request (got a 401, expected HTTP/1.1 20X or a redirect)

1 Ответ

2 голосов
/ 06 июня 2011

Вам не нужно вручную вычислять подпись, поскольку pecl / oauth сделает это за вас.

Кроме того, вы говорите библиотеке о передаче данных в HTTP-заголовок авторизации. Это хорошее место, чтобы иметь это. Затем вы передаете его через параметр запроса. Это разрешено, но менее оптимально. (Вы можете передавать его в двух местах.) Кроме того, pecl / oauth автоматически сгенерирует правильную временную метку.

Когда я только начинал, я нашел эту запись в блоге хорошим первым началом.

Или вы можете использовать библиотеку PHP LinkedIn, указанную Полом. Это также хорошее место для начала, если вы не хотите повторно использовать pecl / oauth, потому что вы используете это где-то еще.

...