#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, часовым поясом и чем только …. но не повезло ….
Наконец, я нашел свой способ и подумал опубликовать его здесь, поскольку это могло бы кому-то помочь:
- Остановить Apache
- Поиск модуля PHP OAuth в каталоге PHP lib в моем случае я нашел это в / usr/lib/php/modules/oauth.so
- Скопировал модуль PHP OAuth с моего сервера разработки и загрузил его на ТЕКУЩИЙ сервер
- Перезапустил apache, и это сработало!
Спасибо Рави