Авторизация на liveinternet с помощью cURL на PHP


Содержание

Авторизация через cURL – как?

Доброго времени суток!

В наличии php 5.4, apache 2.4, мой личный аккаунт на hh.ru.

Задача: получить доступ к страницам hh.ru из-под авторизованного пользователя. Никакого взлома или чужих аккаунтов не нужны – авторизация под своим собственным аккаунтом.

Пробовал решить так:

Однако, вижу страницу для авторизации.
Доступ к кукам есть:
$ sudo chmod 1777 cookie.txt
В них есть несколько токенов и строка с «hhrole anonymous», что не ест гут.

В какую сторону копать? Почему cURL не может авторизоваться и как это исправить?

27.03.2014, 14:08

Авторизация через CURL
Всем привет. Пишу парсер и нужно авторизовываться на сайте, авторизация вроде проходит но.

Авторизация через curl
Здравствуйте. Есть проблема, нужна помощь в ее решении. В общем нужно перейти по ссылке.

Авторизация через cURL QIWI
Код не работает, выдает ошибку. 4 27.03.2014, 14:20 2 27.03.2014, 14:37 [ТС] 3

MVS76, спасибо, посмотрел и опробовал оба. Различаются только настройками SSL. Оба не работают для хедхантера.
Страшный чем? Мне лень писать вызов curl_setopt() для каждой настройки по отдельности. Но можно и переформатировать, если бы мог отредактировать свой же пост.

Посмотрите во вкладку network в инкогнито-хроме – первая печенька с записью htoken ставится при любом заходе на сайт, затем этот hhtoken посылается вместе с постом авторизации на /login.do
И вот на этом месте у меня затык – там происходит один непонятный редирект и несколько обменов хэшами клиента с сервером по разным урлам. cURL вроде как по ним ходит, но, наверное, отправляет невалидные данные?
Хотеось бы понять как это сделать чуть более высокоуровнево, чем ручное формирование header() и их отправка.

Просто копипаст печенек не прокатит в случае с конкретно хедхантером.

PHP парсер с авторизацией

Часто возникают задачи, требующие получения данных со страниц сайта, которые показываются только залогиненным пользователям. В этом случае нам нужно написать парсер с автоматической авторизацией.

Информация о том, авторизован пользователь или нет, часто хранится в Cookies. Составить правильный запрос и обработать файлы Cookies нам поможет библиотека cURL.

Предварительно нужно понять, как работает механизм авторизации на сайте, какие передаются переменные после отправки данных формы входа. Эти данные можно проанализировать с помощью инструментов разработчика в браузере.

В качестве примера разберём парсер баланса баллов в интернет-магазине Gearbest. В html коде формы входа видим название полей ввода логина и пароля, а также адрес страницы-обработчика: /m-users-a-act_sign.htm.

Далее попытаемся авторизоваться и отследить какие запросы отправляются на сервер. Введя правильные логин и пароль мне не удалось успеть увидеть нужные запросы, так как происходит несколько редиректов. А сам запрос авторизации отправляется по AJAX.

Поэтому решил посмотреть, что происходит при вводе неверных данных. В этом случае удалось отследить нужные запросы и структуру переменных.

На следующем шаге смотрим код страницы личного кабинета и прикидываем, как спарсить данные баланса бонусных баллов.

На основе полученной информации можно написать PHP парсер баланса баллов с авторизацией. Я решил дописать ряд функций для парсера из предыдущего примера. Для составления POST запросов используем функции библиотеки cURL.

Полученный в результате код парсера с авторизацией:

Для того, чтобы парсер смог авторизоваться, надо ввести свои данные в переменную $user_data.

Из значимых доработок парсера стоит отметить написание функции curl_login(), которая как раз формирует запрос на авторизацию с отправкой POST параметров на сервер. Также для всех функций были добавлены парметры работы с Cookies. Это нужно для того, чтобы информация о том, что парсер залогинен, передавалась от запроса к запросу.

Пример файла Cookies, сгенерированного cURL:

После авторизации с помощью функции get_gearbest_login(), мы далее сразу парсим страницу с листом желаний личного кабинета с помощью функции get_gearbest_point().

Далее выводим статус попытки авторизации и бонусный баланс.

Возможные варианты ответов от сервера gearbest.com при попытке авторизации:

  • Successfully sign;
  • The email does not exist, please register;
  • Your email/password is incorrect. Please try again;
  • needCode.

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

Теперь мы знаем, как можно автоматически с помощью PHP и cURL залогиниться на сайте и получить данные со страниц для авторизованных пользователей. В следующих статьях из цикла про разработку парсеров мы рассмотрим примеры применения технологии AJAX для парсинга сайтов.

8 примеров использования cURL вместе с PHP

cURL и его расширение для PHP libcURL являются очень полезными инструментами при решении таких задач, как имитация веб браузера, отправка форм или регистрация на веб сервисе. В данном уроке мы рассмотрим несколько интересных применений cURL совместно с PHP.

1. Проверяем доступность определённого веб сайта

Как узнать, доступен ли определённый веб сайт? cURL поможет ответить на данный вопрос. Данный скрипт можно использовать совместно с планировщиком для мониторинга сайта.

Замените URL в строке 3 на тот, который вам нужен. Скопируйте код на свою страницу, и станет известно, доступен ли указанный сайт.

2. Замена cURL для функции file_get_contents()

Функция file_get_contents() очень полезная, но на многих хостингах она отключена. С помощью cURL можно написать функцию, которая будет работать в точности как file_get_contents() .

Илон Маск рекомендует:  Использование мыши при работе с файлами (drag & drop)

3. Получаем последний статус Twitter

С помощью PHP и cURL очень просто получить статус определённого пользователя. Данную информацию можно выводить в блоге.

Использовать функцию очень просто:

4. Twitter: проверяем отношения между двумя пользователями

Если вам нужно узнать, читает ли ваши твиты определенный пользователь, то можно задействовать API Twitter. Данный скрипт выводит true , если два пользователя, указанные на строчках 17 и 18, находятся в дружеских отношениях на Twitter. В противном случае возвращается false .

5. Загружаем и сохраняем изображения со страницы с помощью cURL

Данная функция может быть очень полезна: задаем ей URL страницы и она сохраняет все изображения с нее на вашем сервере.

6. Конвертируем валюту с помощью cURl и Google

Пересчет валюты достаточно простое дело, но курсы достаточно часто изменяются, поэтому приходится использовать сервисы, подобные Google, для получения текущих значений курса пересчета. Функция currency() получает 3 параметра: исходная валюта, целевая валюта и сумма.

7. Получаем информацию о размере файла с помощью cURL

Как определить размер определенного файла, расположенного на другом сервере? Поможет следующая функция. Она получает 3 параметра: URL файла, и (если требуется) имя пользователя и пароль.

8. Загрузка через FTP с помощью cURL

PHP имеет библиотеку FTP library, но также можно использовать cURL для загрузки файлов на FTP сервер. Вот рабочий пример:

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.catswhocode.com/blog/amazing-things-to-do-with-php-and-curl
Перевел: Сергей Фастунов
Урок создан: 14 Февраля 2012
Просмотров: 114511
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.


Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Парсинг сайта с помощью CURL и phpQuery на PHP

Сегодня я расскажу про то, как парсить сайт спомощью библиотеки php CURL и библиотеки phpQuery.

phpQuery — это аналог jQuery, только на PHP. Все методы, которые есть в jQuery, должны присутствовать и этой библиотеке. Это удобно тем, что можно легко перемещаться по DOM дереву html документа и с легкостью находить нужные элементы.

Первым делом нам нужно получить html содержимое нужной страницы сайта для парсинга. Можно сделать это несколькими способами. Первый, самый простой — это использовать функцию file_get_content, указав url страницы в качестве параметра:

Так же, в эту функцию есть возможность добавлять заголовки и т. д, с помощью использования потоковых контекстов:

Чтобы этот способ работал, опция allow_url_fopen в php.ini должна быть включена.

Так же получить содержимое web сайта можно с помощью сокетов (pfsockopen), но проще воспользоваться библиотекой php CURL, если она установлена на вашем сервере. Ниже я продемонстрирую, как получить содержимое страницы сайта с помощью библиотеки CURL.

Получение http страницы без параметров через CURL

Получение http страницы с get параметрами:

Получение web страницы по протоколу https:

Получение http страницы, которая загружается через редиректы (следование 302):

Отправка POST запроса с помощью CURL:

Включаем куки в CURL запросе (нужно при парсинге личных кабинетов):

Включить в запросе GZIP сжатие (нужно, если тело ответа приходит в виде непонятного набора текста, то есть сервер отправляет сжатый gzip’ом текст):

Вывести заголовки ответа от сервера. Часто нужно для отладки, если сервер не присылает правильного тела ответа или не присылает его вообще:

Хочу отметить, что самым важными параметрами при парсинге являются:

Стоит отметить, что все эти параметры (кроме первого) следует добавлять при необходимости. Поэксперементируйте с этими параметрами, если у вас не будет получаться без них. Так же не забывайте про параметр «CURLOPT_HEADER», он вам поможет при поиске проблемы.

Итак, что делать, если http страница получена через CURL, или каким-либо другим способом? Самое время воспользоваться phpQuery для парсинга полученного результата. Скачать библиотеку можно здесь.

Как мы видим phpQuery — это полный аналог jQuery.

Чтобы ознакомиться с полным наборов функций phpQuery, нужно зайти как ни странно, в документацию jQuery. Главная фишка phpQuery, как и jQuery — это использование css селекторов, это упрощает процедуру парсинга нужных элементов страницы в разы. Посмотреть методы и селекторы jQuery можно здесь.

Конечно, есть другие способы парсинга полученной с помощью php curl страницы, но парсинг при помощи phpQuery для меня наиболее удобен и эффективен.

PHP + cURL: авторизация на WordPress методом POST

Статья (если её так можно назвать) содержит пример скрипта на PHP с cURL авторизацией на произвольном сайте, который работает под управлением WordPress.

PHP + cURL: авторизация на WordPress методом POST

Итак, начинаем действовать, исходя из сведений, полученных от такого полезного дополнения к Firefox, как Firebug.

Разбирать момент использования последнего в текущем материале я не буду.

Для начала я получаю следующие важные для предстоящей работы сведения:

  • Данные отсылаются POST-запросом.
  • Помимо логина login и пароля pwd отсылаются ещё несколько параметров типа redirect_to (перенаправление после входа), test_cookie (что-то связанное с куками) и wp_submit (по-видимому клик по кнопке).

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

Исходя из полученной при поверхностном анализе информации пишем среднего объема программный код. Последний смотрите на второй странице сего материала.

Чисто ради простоты примера после того, как скрипт успешно проходит авторизацию, он заходит в закрытый раздел админки движка — «wp-admin» и на этом останавливает прерывает свою активную деятельность.

Авторизация на liveinternet с помощью cURL на PHP

Пример входа на сайт через логин-пароль.

Илон Маск рекомендует:  Что такое код swf_polarview

Вначале вытягивается страница входа с полями логин-пароль и спецполем token. Потом пересылается логин-пароль и токен через POST и вытягивается страница уже после логина.

/*Дальше устанавливаем опции запроса в любом порядке*/

//Здесь устанавливаем URL к которому нужно обращаться

curl_setopt ($curl, CURLOPT_URL , ‘https://www.olark.com/login/’);

//Настойка опций cookie

curl_setopt ($curl, CURLOPT_COOKIEJAR , ‘cook.txt’); //сохранить куки в файл

curl_setopt ($curl, CURLOPT_COOKIEFILE , ‘cook.txt’); //считать куки из файла

//устанавливаем наш вариат клиента (браузера) и вид ОС

curl_setopt ($curl, CURLOPT_USERAGENT , «Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0»);

//Установите эту опцию в ненулевое значение, если вы хотите, чтобы PHP завершал работу скрыто, если возвращаемый HTTP-код имеет значение выше 300. По умолчанию страница возвращается нормально с игнорированием кода.

curl_setopt ($curl, CURLOPT_FAILONERROR , 1 );

//Устанавливаем значение referer — адрес последней активной страницы

curl_setopt ($curl, CURLOPT_REFERER , ‘http://www.olark.com/’);

//Максимальное время в секундах, которое вы отводите для работы CURL-функций.

curl_setopt ($curl, CURLOPT_TIMEOUT , 3 );

curl_setopt ($curl, CURLOPT_POST , 1 ); // устанавливаем метод POST

//ответственный момент здесь мы передаем наши переменные

curl_setopt ($curl, CURLOPT_POSTFIELDS , ‘http://www.olark.com/login/’);


//Установите эту опцию в ненулевое значение, если вы хотите, чтобы шапка/header ответа включалась в вывод.

curl_setopt ($curl, CURLOPT_HEADER , 1 );

//Внимание, важный момент, сертификатов, естественно, у нас нет, так что все отключаем

curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER , 0 ); // не проверять SSL сертификат

curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST , 0 ); // не проверять Host SSL сертификата

curl_setopt ($curl, CURLOPT_FOLLOWLOCATION , 1 ); // разрешаем редиректы

curl_setopt ($curl, CURLOPT_RETURNTRANSFER , 1 );

$html = curl_exec ($curl); // выполняем запрос и записываем в переменную

curl_close ($curl); // заканчиваем работу curl

//подключаем PHP Simple HTML DOM Parser с сайта http://simplehtmldom.sourceforge.net

$html = str_get_html ($html);

//ищем в странице некий authenticity_token и записываем его в переменную $token

$input = $inputs[ 0 ];

// Авторизуемся на сайте со значением authenticity_token в переменной $token

$curl = curl_init (); // инициализируем cURL

/*Дальше устанавливаем опции запроса в любом порядке*/

//Здесь устанавливаем URL к которому нужно обращаться

curl_setopt ($curl, CURLOPT_URL , ‘https://www.olark.com/login/’);

//Настойка опций cookie

curl_setopt ($curl, CURLOPT_COOKIEJAR , ‘cook.txt’); //сохранить куки в файл

curl_setopt ($curl, CURLOPT_COOKIEFILE , ‘cook.txt’); //считать куки из файла

//устанавливаем наш вариат клиента (браузера) и вид ОС

curl_setopt ($curl, CURLOPT_USERAGENT , «Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0»);

//Установите эту опцию в ненулевое значение, если вы хотите, чтобы PHP завершал работу скрыто, если возвращаемый HTTP-код имеет значение выше 300. По умолчанию страница возвращается нормально с игнорированием кода.

curl_setopt ($curl, CURLOPT_FAILONERROR , 1 );

//Устанавливаем значение referer — адрес последней активной страницы

curl_setopt ($curl, CURLOPT_REFERER , ‘http://www.olark.com/’);

//Максимальное время в секундах, которое вы отводите для работы CURL-функций.

curl_setopt ($curl, CURLOPT_TIMEOUT , 3 );

curl_setopt ($curl, CURLOPT_POST , 1 ); // устанавливаем метод POST

//ответственный момент здесь мы передаем наши переменные

//замените значения your_name и your_pass на соответственные значения Вашей учетной записи

//Установите эту опцию в ненулевое значение, если вы хотите, чтобы шапка/header ответа включалась в вывод.

curl_setopt ($curl, CURLOPT_HEADER , 1 );

//Внимание, важный момент, сертификатов, естественно, у нас нет, так что все отключаем

curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER , 0 ); // не проверять SSL сертификат

curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST , 0 ); // не проверять Host SSL сертификата

curl_setopt ($curl, CURLOPT_FOLLOWLOCATION , 1 ); // разрешаем редиректы

$result = curl_exec ($curl); // выполняем запрос и записываем в переменную

curl_close ($curl); // заканчиваем работу curl

echo $result; // Выводим на экран результат выполнения

Примеры использования cURL в PHP

GET запрос

POST запрос

file_get_contents() так же умеет отправлять POST запросы:

PUT запрос

DELETE запрос

HTTP-метод DELETE используется в REST API для удаления объектов.

Отправка файлов на другой сервер

Отправка файлов осуществляется методом POST :

С PHP 5.5 такой метод загрузки файлов вызывает ошибку, поэтому следует применять CURLFile.

Также через curl можно отправить сразу несколько файлов:

Еще файлы можно отправить методом PUT , например так загружаются файлы в REST API Яндекс Диска.

Скачивание файлов

Curl позволяет сохранить результат сразу в файл, указав указатель на открытый файл в параметре CURLOPT_FILE .

Чтобы CURL сохранял куки в файле достаточно прописать его путь в параметрах CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR .

Передать значение кук можно принудительно через параметр CURLOPT_COOKIE .

Имитация браузера


На многих сайтах есть защита от парсинга. Она основана на том что браузер передает серверу user agent , referer , cookie . Сервер проверяет эти данные и возвращает нормальную страницу. При подключение через curl эти данные не передаются и сервер отдает ошибку 404 или 500. Чтобы имитировать браузер нужно добавить заголовки:

HTTP авторизация

Если на сервере настроена HTTP авторизация, например с помощью .htpasswd, подключится к нему можно с помощью параметра CURLOPT_USERPWD .

Форум PHP программистов ► PHP практикум ► GD, XML, CURL, PEAR & PECL

Пейджер выключен!

Сообщений: 9509
Пользователь №: 18161
На форуме:
Карма: 552

Многие начинающие PHP программисты знают о том, что с помощью PHP можно авторизоваться на любом сайте, но многие не знают как это сделать, а есть и такие, что понимают общий принцип авторизации но не знают как на практике это реализовать.
Сегодня я попытаюсь вам на практике показать/объяснить как можно авторизоваться на сайте с помощью PHP.

И так, думаю многие слышали, возможно некоторые и применяли уже такую классную библиотеку PHP как CURL.
Что же нам надо знать для того, чтобы авторизоваться на сайте, самое главное это знать какие данные отправляются на сервер. Посмотрев исходный код страницы можно увидеть форму в которую вводятся данные для отправки на сервер и авторизации, иногда бывает так, что в коде формы авторизации есть много скрытых полей, но они не нужны для авторизации, и собственно их отправлять тоже нет нужды.

У большинства людей может возникнуть естественный вопрос, а как узнать, что отправляется на сервер, а что нет. А в решении этой задачи нам поможет такое отличное дополнение к Firefox как HttpFox. Устанавливаем его себе.

Давайте для начала попробуем авторизоваться на сайте Letitbit.net, т.к. на этом сайте самая простая авторизация :)

Авторизация на Letitbit.net

Заходим на сайт, заполняем поле логин/пароль в всплывающем окошке. Потом запускаем плагин HttpFox нажимаем на зеленый треугольник (старт) потом нажимаем на форме «Авторизоваться». Этот процесс вы можете посмотреть на изображении ниже.

После того как мы авторизовались смотрим какие данные и куда отправлялись при авторизации. Смотрим изображение.

И так, мы уже знаем, что данные для авторизации отсылаются в индексный файл (index. php )
Мы можем уже прописать задать некоторые переменные

Илон Маск рекомендует:  Как сделать картинку резкой

Теперь переключимся на кладку POST Data в плагине HttpFox, там мы видим, в левой колонке имя поля которое отсылается скрипту , а справа значение.
В моем случае передаются 3 параметра act, login и password.
Теперь имея эту информацию мы можем сформировать POST данные для того, чтобы потом отослать через CURL

Эту строку мы и будет отсылать.

Дальше будет самое вкусное, это написание кода :)

Вот вам такой самый простой пример авторизации на сайте.

Думаю одного примера авторизации мало, давайте еще один пример.

Авторизация на Mail.ru

Давайте авторизуемся на mail.ru :)
Процесс добывания POST данных такой же как и в предыдущем примере, сначала вбиваем все данные в форму логин/пароль, домен (mail.ru или list.ru и т.д.), запускаем плагин, стартуем его и нажимаем «Войти» на форме
После этого должен появиться весь лог http запросов. С самого начала ищем метод POST, и нажимаем на нем, справа от него есть URL на который нужно отсылать POST у меня это https://auth.mail.ru/cgi-bin/auth
Как видим здесь протокол https, но мы можем отослать и по http протоколу, чтобы делать меньше телодвижений :)

Потом смотрим POST Data нашего сниффера :) и видим, что там передается всего 3 параметра. Login, Domain, Password
И пишем такой вот код авторизации

Вот так мы и авторизовались на mail.ru. Как вы заметили, что авторизация может происходить и по протоколу https, на mail.ru тоже, но нам повезло в том, что мы отправили данные по протоколу http и это прокатило, что не может не радовать :)
В следующий раз через http может и не получится авторизоваться, потому для того, чтобы авториз. по https нужно будет добавить две опции

первая опция запрещает проверку SSL сертификат, а вторая HOST SSL сертификат.

Авторизация на liveinternet с помощью cURL на PHP

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Использование OAUTH API с CURL на странице PHP

Я работаю с веб-сайтом PHP, где я хочу интегрировать в какой-либо сторонний API.

В частности, я смотрю на использование CURL для взаимодействия с их сервером, но я далеко не эксперт, поэтому надеюсь, что сообщество поможет мне лучше понять, что я делаю.

Мне неясно, какие опции, такие как -X и -d, также неясно, как я пишу эту команду на своей странице PHP? (К сожалению, поиск «-d» в Google сложно, так как это не считается частью строки поиска)

Мой конкретный пример, на котором я застрял, это запрос токена доступа, предоставленная мне документация по API;

client_id — генерируется во время установки

client_secret — только веб-приложения, созданные во время установки

область Необязательно — список значений, разделенных запятыми, см. поддерживаемые области

Если запрос выполнен успешно, токен доступа будет возвращен в
ответ:

Это приведенное выше руководство, я выполнил предварительные условия, чтобы подтвердить правильность идентификатора клиента, секрета и требуемой области.

Я попробовал оба из следующих в вене в моем сценарии PHP

Оба этих примера приводят к следующей ошибке;

Будем весьма благодарны за любую помощь по этому конкретному вопросу или даже за то, чтобы просто понять, как я поступаю неправильно, чтобы дать мне представление о правильном синтаксисе!

Спасибо всем заранее за ваше время.

  • (Обратите внимание, что я изменил на «example.com» для безопасности 3-го
    вечеринка)

Решение

Ниже приведен пример кода вызова cURL в php. Вам нужно изменить имя вашего домена вместо example.com и указать значения для POSTFIELDS.

Другие решения

Если вы хотите сделать это OO вместо использования cURL, вам может понравиться это лучше. Прежде всего требуется в Guzzle:

Создайте объект ApiCredentials:

Теперь создайте класс ApiService:

И класс токена доступа:

Теперь, чтобы использовать этот материал:

Он также будет обрабатывать обновленные токены доступа и т.д.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL