2011-01-19 1 views
1

Я создаю приложение, которое импортирует данные Basecamp, используя их API и некоторые классы PHP, которые я создал. Проблем нет. Тем не менее, поскольку приложение будет проходить аутентификацию через Basecamp API на основе учетных данных, которые вводит пользователь, я не всегда буду знать, правильны ли они, используемые ими Basecamp. Сейчас моя логика предполагает, что кредиты хороши и соответственно обрабатываются (что я безупречно работает). Если это не так, скрипты выходят из строя.Обработка аутентификации в PHP с использованием Basecamp API

Что бы я хотел сделать, так это возможность улавливать и обрабатывать ответ API и возвращать пользователю дружественное сообщение об ошибке, если по каким-либо причинам их кредиты не удались (плохие кредиты, неправильный URL-адрес, доступ к API Basecamp для учетной записи не включен и т. д.) Мне все равно, что виновник, я просто хочу сказать им, что это не удалось, и что они могут проверить несколько возможных причин.

Согласно API Basecamp, «Если запрос не удается, код состояния не-200 будет возвращен»

Я использую CURL для отправки кредитки и получить обратно XML из API. Простите меня, если это что-то действительно простое - я порядочный программист PHP, но немного noob, когда дело доходит до взаимодействия с API.

ответ

4

После успешнойcurl_exec вы можете получить дополнительную информацию с помощью curl_getinfo:

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

Где $ch это "ручка" вы извлекается curl_init(...).

+0

Благодарим вас за это. Я действительно не знал, что искать, но теперь он имеет полный смысл. –

+0

Я также экспериментирую с API Basecamp (просто создавая простой список проектов, чтобы мы могли использовать внутренние идентификаторы проектов как уникальные идентификаторы в других частях нашего рабочего процесса). Ты вел меня в правильном направлении. – jamesnotjim

+0

@jamesnotjim Спасибо. Взгляните на [этот ответ] (http://stackoverflow.com/questions/8227909/curl-exec-always-returns-false/13311209#13311209), если неясно, что я имел в виду под «a * success *' curl_exec' ». –

0

Вам необходимо найти код ответа после вашего звонка, и посмотреть, есть ли он 200 (что, согласно вашему сообщению, означает, что оно сработало) или код статуса не-200, и в этом случае Не работай.

Если вы можете опубликовать свой фрагмент CURL, я, вероятно, смогу помочь больше, но это вообще то, что вам нужно делать.