Перейти к содержимому


Фотография
  • Пожалуйста, авторизуйтесь для ответа.
9 ответов в данной теме

#1 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 14 ноября 2015 - 23:15

Приветствую!

 

Не удаётся получить "session_id".

При отправке https://files.webmon...xxxxxxxxxxxxxxx

получаю null.

 

Полный код

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://files.webmoney.ru/api/account.json?ticket=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, '3');
curl_setopt($ch, CURLOPT_HTTPHEADER, array ("Accept: application/json", "Content-Type: charset=utf-8", "Accept-Encoding: gzip",));
$json = curl_exec ($ch) or die(curl_error($ch));
$curl_error = curl_error($ch);
curl_close ($ch);
$result = json_decode($json);
var_dump($result);

Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх

#2 Знаток umount (WMID 374717438121 )

  • Группа: Администраторы
  • сообщений 142
  • Регистрация: 05-марта 11
  • МестоположениеРоссия
  • Webmoney BL

Отправлено 23 ноября 2015 - 11:21

Приветствую!
 
Не удаётся получить "session_id".
При отправке https://files.webmon...xxxxxxxxxxxxxxx
получаю null.
 
Полный код

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://files.webmoney.ru/api/account.json?ticket=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, '3');
curl_setopt($ch, CURLOPT_HTTPHEADER, array ("Accept: application/json", "Content-Type: charset=utf-8", "Accept-Encoding: gzip",));
$json = curl_exec ($ch) or die(curl_error($ch));
$curl_error = curl_error($ch);
curl_close ($ch);
$result = json_decode($json);
var_dump($result);


Cервис поддерживает WebDAV протокол там авторизация по логину с паролем, возможно стоит попробовать его ? Предварительно его нужно включить в настройках на сервисе Files https://files.webmon.../account/webdav
    • 2
  • Наверх

#3 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 24 ноября 2015 - 14:22

Всё равно не работает. Включил WebDAV, но API не заработало - та же ошибка null.


Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх

#4 Участник 254359267685 (WMID 254359267685 )

  • Группа: Пользователи
  • сообщений 19
  • Регистрация: 22-ноября 15
  • Webmoney BL

Отправлено 27 ноября 2015 - 18:40

Здравствуйте!

curl_exec возвращает не сам контент а true/false (шмогла-нешмогла), а контент выводит прямо в браузер.

Что-бы захватить контент, выкачанный curl_exec, нужно поиграть с буфером вывода.

Как-то так:

ob_start();
curl_exec($ch);
$json = ob_get_contents();
ob_end_clean();

 


    • 1
  • Наверх

#5 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 28 ноября 2015 - 11:35

Попробовал. Тоже не удалось. В $json пусто.

Попробовал ещё так

$json = curl_exec ($ch) or die(curl_error($ch));
$curl_error = curl_error($ch);
curl_close ($ch);
var_dump($json);

выводит что-то такое

׮ږ%_qTXW

изменение кодировки в браузере ничего не даёт. Изменение кодировки через iconv даёт ошибку "Notice: iconv(): Detected an illegal character in input string in"

 

Длина строки $json - 57020 символа.


Сообщение отредактировал ^-^: 28 ноября 2015 - 11:37

Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх

#6 Участник 254359267685 (WMID 254359267685 )

  • Группа: Пользователи
  • сообщений 19
  • Регистрация: 22-ноября 15
  • Webmoney BL

Отправлено 28 ноября 2015 - 21:37

А зачем вам curl?

Используйте file_get_contents с контекстом:

$options = [
	'http' => [
		'header' => "Content-type: application/x-www-form-urlencoded\r\n",
		'method' => 'POST',
		'content' => http_build_query($params)
	]
];
$context = stream_context_create($options);
$json = @file_get_contents($url, false /* use include path */, $context);

    • 1
  • Наверх

#7 Участник 254359267685 (WMID 254359267685 )

  • Группа: Пользователи
  • сообщений 19
  • Регистрация: 22-ноября 15
  • Webmoney BL

Отправлено 28 ноября 2015 - 21:41

выводит что-то такое

׮ږ%_qTXW

изменение кодировки в браузере ничего не даёт. Изменение кодировки через iconv даёт ошибку "Notice: iconv(): Detected an illegal character in input string in"

 

Длина строки $json - 57020 символа.

Это может быть сжатые данные gzip, вы ведь задали заголовок "Accept-Encoding: gzip", а curl сам расжимать данные не станет.


    • 1
  • Наверх

#8 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 29 ноября 2015 - 04:04

Это может быть сжатые данные gzip, вы ведь задали заголовок "Accept-Encoding: gzip", а curl сам расжимать данные не станет.

Я так думаю, что это оно?

curl_setopt($ch, CURLOPT_HTTPHEADER, array ("Accept: application/json", "Content-Type: charset=utf-8", "Accept-Encoding: gzip",));

Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх

#9 Участник 254359267685 (WMID 254359267685 )

  • Группа: Пользователи
  • сообщений 19
  • Регистрация: 22-ноября 15
  • Webmoney BL

Отправлено 30 ноября 2015 - 16:58

 

Это может быть сжатые данные gzip, вы ведь задали заголовок "Accept-Encoding: gzip", а curl сам расжимать данные не станет.

Я так думаю, что это оно?

curl_setopt($ch, CURLOPT_HTTPHEADER, array ("Accept: application/json", "Content-Type: charset=utf-8", "Accept-Encoding: gzip",));

Да, это заголовки для HTTP-запроса.

Вообще, curl много умеет, наверняка умеет обрабатывать gzip, надо только включить нужную опцию.


    • 1
  • Наверх

#10 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 30 ноября 2015 - 23:15

Похоже я первый, кто решил пробовать API. :)

Хотя мне бы по сути только названия файлов, адреса к ним и знать права на них. Думаю, это бы и xml решить смог.


Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх





Еще теги с одним или более ключевыми словами: files, files.webmoney.ru, api, session_id, JSON API Сервиса