CURL не выводит часть ответов

Sergo_Sev

Творец
Регистрация
14 Июн 2008
Сообщения
578
Реакции
193
Не могу получить ответ от API через curl
Через расширение получаю верный ответ (пример на скрине)
Для просмотра ссылки Войди или Зарегистрируйся
02-06-2020 12-03-44.png

Через curl только в одном случае удается получить ответ (когда нет одного из параметров)
На одном сервере ответ 100, на другом 400, но в обоих случаях ответ не тот, что через расширение

Код:
$ch = curl_init ();
curl_setopt ($ch , CURLOPT_URL , "https://graph.secure.facebook.com/ajax/payment/token_proxy.php?tpe=/v6.0");
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ($ch , CURLOPT_POST, 1);

$post['access_token'] = "1111"; // C этой строкой не получаю ответ
$post['1111'] = "1111";
curl_setopt ($ch , CURLOPT_POSTFIELDS, $post);

$url = curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo 'HTTP: ', $http_code, "\n";

curl_close($ch);
echo $url;

В чем может быть проблема?
 
Не могу получить ответ от API через curl
Через расширение получаю верный ответ (пример на скрине)
Для просмотра ссылки Войди или Зарегистрируйся
Посмотреть вложение 110094

Через curl только в одном случае удается получить ответ (когда нет одного из параметров)
На одном сервере ответ 100, на другом 400, но в обоих случаях ответ не тот, что через расширение

Код:
$ch = curl_init ();
curl_setopt ($ch , CURLOPT_URL , "https://graph.secure.facebook.com/ajax/payment/token_proxy.php?tpe=/v6.0");
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ($ch , CURLOPT_POST, 1);

$post['access_token'] = "1111"; // C этой строкой не получаю ответ
$post['1111'] = "1111";
curl_setopt ($ch , CURLOPT_POSTFIELDS, $post);

$url = curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo 'HTTP: ', $http_code, "\n";

curl_close($ch);
echo $url;

В чем может быть проблема?

Субкод ошибки/предупреждения в студию.
 
Субкод ошибки/предупреждения в студию.
Если вопрос про ошибки в коде, то php ошибок и предупреждений не выводит по этому коду

Суть в том, что curl перестает получать ответы от сервера при добавлении в post запрос параметра access_token
То ли их нет, то ли надо ка кто иначе запрос отправлять
С любыми другими api такой проблемы не встречал
 
Не могу получить ответ от API через curl
Через расширение получаю верный ответ (пример на скрине)
Для просмотра ссылки Войди или Зарегистрируйся
Посмотреть вложение 110094

Через curl только в одном случае удается получить ответ (когда нет одного из параметров)
На одном сервере ответ 100, на другом 400, но в обоих случаях ответ не тот, что через расширение

Код:
$ch = curl_init ();
curl_setopt ($ch , CURLOPT_URL , "https://graph.secure.facebook.com/ajax/payment/token_proxy.php?tpe=/v6.0");
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ($ch , CURLOPT_POST, 1);

$post['access_token'] = "1111"; // C этой строкой не получаю ответ
$post['1111'] = "1111";
curl_setopt ($ch , CURLOPT_POSTFIELDS, $post);

$url = curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo 'HTTP: ', $http_code, "\n";

curl_close($ch);
echo $url;

В чем может быть проблема?
На скриншоте "access_token" и "111" у тебя отправляются как HTTP заголовки.
А в PHP коде ты их отправляешь как тело запроса. Поэтому и результат отличается.
 
На скриншоте "access_token" и "111" у тебя отправляются как HTTP заголовки.
Изначально post запрос формировал, потом просматривал сохраненные запросы и почему то там в заголовки параметры подставились

В расширении поправил на post запрос - ответ от сервера в любом случае имеется, а в php его нет вообще
02-06-2020 13-50-47.png 02-06-2020 13-50-56.png
 
Изначально post запрос формировал, потом просматривал сохраненные запросы и почему то там в заголовки параметры подставились

В расширении поправил на post запрос - ответ от сервера в любом случае имеется, а в php его нет вообще
Посмотреть вложение 110100 Посмотреть вложение 110101
Код:
laptop% cat test.php 
<?php

$ch = curl_init ();
curl_setopt ($ch , CURLOPT_URL , "https://graph.secure.facebook.com/ajax/payment/token_proxy.php?tpe=/v6.0");
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ($ch , CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Access_Token: 1111",
  "1111: 1111"
));

$url = curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo 'HTTP: ', $http_code, "\n";

curl_close($ch);
echo $url;

laptop% php test.php
HTTP: 400
{"error":{"message":"Unsupported post request. Please read the Graph API documentation at https:\/\/developers.facebook.com\/docs\/graph-api","type":"GraphMethodException","code":100,"error_subcode":33,"fbtrace_id":"Auvh5dl14ewng1xvjG8P4co"}}
 
Проверил, не то получается...

Нужно все же post запросом передавать, чтобы получить такой ответ как на скрине "Invalid OAuth access token"
02-06-2020 14-07-39.png
 
Проверил, не то получается...

Нужно все же post запросом передавать, чтобы получить такой ответ как на скрине "Invalid OAuth access token"
Посмотреть вложение 110103
Так на скрине ответ в каком формате? Может быть в json формате их получать и выводить после этого в php?
 
Так на скрине ответ в каком формате? Может быть в json формате их получать и выводить после этого в php?
В json, но curl никакой ответ не получает - он получает пустое место вместо ответа
Проблема не в формате ответа, а в том, что curl его вообще не получает почему то
Уже и заголовки пробовал добавлять по разному и куки и юзер агент (через расширение этого всего нет, но ответ все равно удается получить)
 
Задача решилась - нужно было просто написать параметры в одну строку
 
Назад
Сверху