Коллекция Postman — примеры запросов к API Wildberries
Добавить комментарий
Ранее я писал как можно через curl в Linux выполнить запрос в Linux на создание файла или его обновление в репозитории Gitlab через его API. Ниже показано как это сделать через Curl, но уже в PHP.
Получить информацию по репозиторию:
<?php
$headers = ['PRIVATE-TOKEN: 123ABC'];
$url = 'https://main-git.ru/api/v4/projects/Dima/%2Fdima-tools';
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_URL, $url);
$result = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
var_dump($info);
var_dump($result);
Создать файл в репозитории:
<?php
$json_array = array("branch" => "master", "author_email" => "dima@example.com", "author_name" => "Firstname Lastname", "content" => "some content", "commit_message" => "create a new file");
$JSON = json_encode($json_array);
$headers = array('PRIVATE-TOKEN: 123ABC', 'Content-Type: application/json');
$url = 'https://main-git.ru/api/v4/projects/1/repository/files/app%2Fmain';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $JSON);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
Обновить файл в репозитории, при этом наполнить его содержимым из другого файла (create json array from file in php):
<?php
//читаем файл в строку, в файле должны быть переводы строк "\n" если хотите, чтобы в //Gitlab была не одна строка без переносов
$hosts = file_get_contents('./file/hosts.txt');
$json_array = array("branch" => "master", "author_email" => "dima@russia.ru", "author_name" => "Red Dima", "content" => $hosts, "commit_message" => "update file");
$JSON = json_encode($json_array);
$headers = array('PRIVATE-TOKEN: 123ABC', 'Content-Type: application/json');
$url = 'https://main-git.msk.ru/api/v4/projects/1/repository/files/ansible%2Fhosts';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_POSTFIELDS, $JSON);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
var_dump($info);
var_dump($result);
<?php
//header("Content-Type: application/xml; charset=utf-8");
$user_id = 99999;
$host_id = 'https:site.ru:443';
$OAuth = 'key_here';
$data = 'Варкалось. Хливкие шорьки
Пырялись по наве,
И хрюкотали зелюки,
Как мюмзики в мове. ';
$data = strip_tags($data);
$data = htmlspecialchars($data);
$data = iconv(mb_detect_encoding($data, mb_detect_order(), true), "UTF-8", $data);
$data = "<Data><content>{$data}</content></Data>";
$headers = array(
'Content-type: application/xml;charset=UTF-8',
'Authorization: OAuth '.$OAuth.''
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.webmaster.yandex.net/v4/user/$user_id/hosts/$host_id/original-texts/"); // отправка текста в яндекс
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS , $data);
$output = curl_exec($ch);
$debug = curl_getinfo($ch);;
curl_close($ch);
$info = json_decode($output, true);
print_r($info);
print_r($debug);
У Яндекс условие — текст должен быть более 500 символов.
<?php
$ch = curl_init('https://login.yandex.ru/info');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('format' => 'json'));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth AADSDSddffdfdfdfdfdfjhkh777'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$info = curl_exec($ch);
curl_close($ch);
$info = json_decode($info, true);
print_r($info);
Выполняем следующий скрипт, получение токена и user-id было произведено ранее.
<?php
$user_id = 4299035;
$token = '232sASDSDFweeregr';
$ch = curl_init('https://api.webmaster.yandex.net/v4/user/".$user_id."/hosts'); //получение списка сайтов
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth ".$token."'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$info = curl_exec($ch);
curl_close($ch);
$info = json_decode($info, true);
print_r($info);