Ошибки с запросом приглашения LinkedIn через их REST API с PHP с использованием PECL OAuth

Я использую PECL OAuth с LinkedIn, потому что он отлично работает с Twitter и GET-запросами LinkedIn. Переключится на собственные библиотеки OAuth LinkedIn, если это не сработает, но предпочел бы делать все через ту же библиотеку OAuth.

Код:

$xmlString = "<?xml version='1.0' encoding='UTF-8'?>".
                         "<mailbox-item>".
                          "<recipients>".
                            "<recipient>".
                             "<person path=\"/people/email={$person->PersonEmail}\">".
                              "<first-name>{$person->PersonFirstName}</first-name>".
                              "<last-name>{$person->PersonLastName}</last-name>".
                             "</person>".
                            "</recipient>".
                          "</recipients>".
                          "<subject>Invitation to Connect</subject>".
                          "<body>Please join my professional network on LinkedIn.</body>".
                          "<item-content>".
                           "<invitation-request>".
                            "<connect-type>friend</connect-type>".
                           "</invitation-request>".
                          "</item-content>".
                         "</mailbox-item>";

try {
                $oauth = new OAuth(self::$apiKey, self::$secretKey, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_FORM);
                $oauth->setToken($accessToken, $accessTokenSecret);
                $oauth->fetch("http://api.linkedin.com/v1/people/~/mailbox", $xmlString, OAUTH_HTTP_METHOD_POST, array('Content-Type'=>'text/xml'));
                $result = $oauth->getLastResponse();
                return $result;
            } catch (OAuthException $e) {
                var_dump($e);
                throw new ModelException('Error - Invalid Access Token', ModelException::$excodes['invalid_access_token']);
            }

Это вызывает исключение, которое перехватывается, и var_dump выдает много, в первую очередь: «Неверный запрос авторизации/неверный (получил 401, ожидаемый HTTP/1.1 20X или перенаправление)»

Я пробовал несколько вариантов кода. Например, удаление «Content-Type» => «text/xml» дает ту же ошибку. Я проверил xml и знаю, что токены доступа хороши, так как я прекрасно использую их для выполнения запросов GET.

Любая помощь будет оценена, спасибо.


person mjanes    schedule 03.06.2011    source источник
comment
Нашел решение, он заменял «$ oauth = новый OAuth (self:: $ apiKey, self:: $ secretKey, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_FORM);» с '$oauth = новый OAuth(self::$apiKey, self::$secretKey, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION);'   -  person mjanes    schedule 04.06.2011


Ответы (1)


Решение найдено, оно заменило

$oauth = new OAuth(self::$apiKey, self::$secretKey, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_FORM);

с участием

$oauth = new OAuth(self::$apiKey, self::$secretKey, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION);
person mjanes    schedule 04.06.2011