LinkedIn — пример кода PHP

#linkedin

#linkedin-api

Вопрос:

Я пытаюсь реализовать LinkeIN API с помощью модуля PECL OAuth, мне удалось импортировать мои контакты, и сценарий хорошо работает в моей среде разработки

Но на моем реальном сервере возникает исключение, когда я перенаправляюсь на свой веб-сайт после аутентификации (со ссылки на веб-сайте)

Я подтвердил следующее: 1. Часовой пояс указан правильно, и дата-время моего сервера установлено правильно. 2. URL обратного вызова является правильным

Исключение: поймано исключение! Ответ: 400 1302008612531 0 Неподдерживаемый целевой пост {/v1/people/~:(id,first-name,last-name,headline,location,industry,distance,relation-to-viewer,current-status,current-status-timestamp,connections,summary,specialties,proposal-comments,honors,positions,educations,member-url-resources,picture-url,site-standard-profile-request,api-standard-profile-request)} Неустранимая ошибка: неперехваченное исключение ‘OAuthException’ с сообщением ‘Недопустимый авторизационный / неверный запрос (получено 400, ожидается HTTP / 1.1 20X или перенаправление)’ в /var/www/ html/contaxz/app/webroot/LinkedIn/linkedin/Request.php:217 Трассировка стека: #0 /var/www/html/contaxz/app/webroot/linkedIn/linkedin/Request.php (217): OAuth->выборка(‘https://api.lin …’) #1 /var/www/html/contaxz/app/webroot/linkedIn/example/index.php (23): добавлено LinkedIn_Request->pullConnections() #2 {main} /var/www/html/contaxz/app/webroot/linkedIn/linkedin/Request.php в строке 217

Пожалуйста, предложите

Спасибо Рави

Комментарии:

1. Значит, точно такой же скрипт, без каких-либо изменений в конечной точке и т.д., отлично работает на сервере разработки, но не на реальном сервере? ошибка 400 указывает на некорректную запись (неустановленный селектор полей, искаженный текст запроса и т.д.). Можете ли вы выполнять базовые запросы на реальном сервере?

2. Да, это правильно, точно такой же скрипт работает на DEV, и это пример скрипта, который я скачал с веб-сайта LinkedIn. Все, что мне пришлось изменить, это следующие параметры: ключ приложения, секретный ключ и URL возврата. Но это не работает на реальном сервере, что заставляет меня поверить, что это как-то связано с конфигурацией сервера.

3. Вот мои данные OAuth о разработчике с включенной поддержкой OAuth, поддержка открытого текста не поддерживается, поддержка RSA-SHA1 включена, поддержка HMAC-SHA1 включена, Поддержка механизма запросов php_streams включена, исходная версия $ Id: OAuth Подробности о ЖИВОЙ поддержке OAuth с включенной поддержкой открытого текста, поддержка RSA-SHA1 включена, поддержка HMAC-SHA1 включена, механизм запросов поддерживает php_streams, исходная версия curl $ Id: oauth.c 308061 2011-02-06 17:15:34Z jawed $ новая версия 1.0-dev

4. Ну, как вы сказали, если все остальное равно, это должна быть проблема с сервером. в DEV какие версии PHP, cURL, PECL OAuth вы используете по сравнению с LIVE? Кроме того, вы убедились, что временная метка сервера одинакова на обоих?

5. Я сравнил конфигурацию сайта в LIVE для PHP, Oauth, PECL, Curl — все похоже на DEV У меня также установлен часовой пояс с правильными значениями, и только после установки часового пояса и времени он фактически перенаправил меня на сайт LinkedIn, теперь я получаю это исключение после того, как я возвращаюсь с сайта LinkedIn и пытаюсь получить информацию профиля Примечание: Тот же скрипт работает в моей среде разработки, поэтому я полагаю, что это как-то связано с настройками сервера, пожалуйста, помогите?

Ответ №1:

Я ломал голову над кодом, конфигурацией сервера, установкой OAuth, версиями php и apache, часовым поясом и чем только …. но не повезло ….

Наконец, я нашел свой способ и подумал опубликовать его здесь, поскольку это могло бы кому-то помочь:

  1. Остановить Apache
  2. Поиск модуля PHP OAuth в каталоге PHP lib в моем случае я нашел это в / usr/lib/php/modules/oauth.so
  3. Скопировал модуль PHP OAuth с моего сервера разработки и загрузил его на ТЕКУЩИЙ сервер
  4. Перезапустил apache, и это сработало!

Спасибо Рави