У меня возникают проблемы при переводе следующего запроса из учебника (Mixpanel JQL), написанного на bash, в запрос PHP Curl:
Код Bash
# sends the JQL code in `query.js` to the api
# to a project with sample data for this tutorial
curl https://mixpanel.com/api/2.0/jql \
-u ce08d087255d5ceec741819a57174ce5: \
--data-urlencode [email protected] | python -m json.tool
Вопросы
python -m json.tool
на самом деле и нужно ли мне это?Ссылка: https://mixpanel.com/help/reference/jql/getting-started
Спасибо вам.
Я предполагаю, что вы удалили свой пароль, так как -u это HTTP-аутентификация. В следующем примере пароль где вам нужно разместить его. (удалить звезды, хотя!).
python -m json.tool — это то, для чего передается команда curl, это форматер json. Поэтому я предполагаю, что ваш сервис возвращает формат json.
Я не уверен, какой у вас файл [email protected], поэтому я предположил, что это имя файла. И таким образом добавил к нему file_get_contents.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mixpanel.com/api/2.0/jql");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "ce08d087255d5ceec741819a57174ce5:*password*");
curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode(file_get_contents("[email protected]")));
$result=curl_exec ($ch);
curl_close ($ch);
Вот что сработало, призыв к ba сделан на самом деле просто.
Вызов
Запросить URL (GET) https://mixpanel.com/api/2.0/jql?script=<javscript script contents>
В PHP
$scriptContents = file_get_contents(<FILE PATH>);
$request_url = 'https://mixpanel.com/api/2.0/jql?script='.urlencode($scriptContents);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => <Request URL>,
CURLOPT_CONNECTTIMEOUT => 2,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPAUTH => 1,
CURLAUTH_ANY => 1,
CURLOPT_USERPWD => 'ce08d087255d5ceec741819a57174ce5',
));
$data = curl_exec($curl);
curl_close($curl);