2016-05-10 4 views
0

Я имею перевод неприятности следующий запрос из учебника (Mixpanel JQL), написанный в Баш, на запрос PHP Curl:Bash CURL в 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 

Вопросы

  • В PHP, какие опции CURL следует использовать для выполнения эквивалента;
  • Каким будет путь к скрипту (я угадал доступный HTTP-адрес?);
  • Что делает python -m json.tool На самом деле делать и делать Мне это нужно?

Ссылка: https://mixpanel.com/help/reference/jql/getting-started

Спасибо вам.

ответ

1

Я предполагаю, что вы удалили свой пароль, поскольку -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); 
+0

Спасибо, я попробую. Строка USERPWD на самом деле является ключом API, поэтому я не уверен, что мне нужен пароль. Вы подтверждаете? –

+0

Я понял, ваш anwser не является правильным, хотя он помогает указывать на правильный скрипт :-). Благодаря ! –

+0

Ваш пример ниже в основном одинаковый в разных обозначениях; только curlopt_postfields должны стать массивом ("script" => urlencode (scriptcontents)). – martijn

0

Вот что сработало, звонок в 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); 
Смежные вопросы