Необходимо устранить проблему с открытием новых вкладок на сайте на WordPress, которая может быть вызвана взломом. Задача заключается в поиске и удалении источника рекламы, которая перенаправляет на крипто-биржу. Укажите примерную стоимость работы.
Составить запрос через Guzzle Client на PHP к сервису
Добрый день!
Нужно помочь составить request запрос через Guzzle client через PHP на GraphQl апи
Есть вот такой curl:
curl 'https://stake.com/_api/graphql' \
-H 'authority: stake.com' \
-H 'accept: */*' \
-H 'accept-language: ru' \
-H 'access-control-allow-origin: *' \
-H 'content-type: application/json' \
-H 'cookie: cf_chl_3=1aa55659d348913; __cf_bm=4hxO3jDGAwyYve4x5_JxrNLmhA._0Iti0S.Hx_aYWgI-1710764820-1.0.1.1-2QLuJ4LAUovTSmbB6KMj312TMK7Kcsk74To9lwrUOt.QTwXjtZa1rpWkDNBWUPF8OBaubxhsXajrIYSmpV58Mg; currency_currency=btc; currency_hideZeroBalances=false; currency_currencyView=crypto; session_info=undefined; fiat_number_format=en; cookie_consent=false; leftSidebarView_v2=expanded; sidebarView=hidden; casinoSearch=["Monopoly","Crazy Time","Sweet Bonanza","Money Train","Reactoonz"]; sportsSearch=["Liverpool FC","Kansas City Chiefs","Los Angeles Lakers","FC Barcelona","FC Bayern Munich"]; sportMarketGroupMap={}; oddsFormat=decimal; cf_clearance=3sWUiNwmMGWAQ2y8f2GAfH9bHw4W9fs9v.Vd1lRmpT0-1710764822-1.0.1.1-EnqGd1_z8raLiVfZvOHmCWBkGG0Xavlg95ej4xGo0Bv4prQc5bu23FeTcqzBapXBW7V.sIpYdFryUPIS1KrlzA; locale=ru; intercom-id-cx1ywgf2=2bd34916-5d76-4287-9388-ef4154869ba5; intercom-session-cx1ywgf2=; intercom-device-id-cx1ywgf2=320c73c3-4379-4b4c-90e2-69d5698be48e; mp_e29e8d653fb046aa5a7d7b151ecf6f99_mixpanel=%7B%22distinct_id%22%3A%20%22%24device%3A18e51879363aee-071ce17f0a98a7-1d525637-1ea000-18e51879363aee%22%2C%22%24device_id%22%3A%20%2218e51879363aee-071ce17f0a98a7-1d525637-1ea000-18e51879363aee%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fstake.com%2Fru%2Fcasino%2Fgroup%2Fhacksaw-gaming%3F__cf_chl_tk%3DKyRI5ATkMCBqKsFESBDS_annrOdOKvDZXs2guVKVlNo-1710764771-0.0.1.1-1642%22%2C%22%24initial_referring_domain%22%3A%20%22stake.com%22%2C%22__mps%22%3A%20%7B%7D%2C%22__mpso%22%3A%20%7B%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fstake.com%2Fru%2Fcasino%2Fgroup%2Fhacksaw-gaming%3F__cf_chl_tk%3DKyRI5ATkMCBqKsFESBDS_annrOdOKvDZXs2guVKVlNo-1710764771-0.0.1.1-1642%22%2C%22%24initial_referring_domain%22%3A%20%22stake.com%22%7D%2C%22__mpus%22%3A%20%7B%7D%2C%22__mpa%22%3A%20%7B%7D%2C%22__mpu%22%3A%20%7B%7D%2C%22__mpr%22%3A%20%5B%5D%2C%22__mpap%22%3A%20%5B%5D%7D' \
-H 'origin: https://stake.com' \
-H 'referer: https://stake.com/ru/casino/group/hacksaw-gaming' \
-H 'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"' \
-H 'sec-ch-ua-arch: "x86"' \
-H 'sec-ch-ua-bitness: "64"' \
-H 'sec-ch-ua-full-version: "122.0.6261.112"' \
-H 'sec-ch-ua-full-version-list: "Chromium";v="122.0.6261.112", "Not(A:Brand";v="24.0.0.0", "Google Chrome";v="122.0.6261.112"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-model: ""' \
-H 'sec-ch-ua-platform: "macOS"' \
-H 'sec-ch-ua-platform-version: "12.6.8"' \
-H 'sec-fetch-dest: empty' \
-H 'sec-fetch-mode: cors' \
-H 'sec-fetch-site: same-origin' \
-H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36' \
-H 'x-language: ru' \
--data-raw $'{"query":"query SlugKuratorGroup($slug: String\u0021, $limit: Int\u0021, $offset: Int\u0021, $showGames: Boolean = true, $sort: GameKuratorGroupGameSortEnum = popular, $showProviders: Boolean = false, $filterIds: [String\u0021], $isActivePlayersFeatureFlagOn: Boolean = false, $language: LanguageEnum = en) {\\n slugKuratorGroup(slug: $slug) {\\n ...GameKuratorGroup\\n gameCount(filterIds: $filterIds, language: $language)\\n groupGamesList(\\n limit: $limit\\n offset: $offset\\n sort: $sort\\n filterIds: $filterIds\\n language: $language\\n ) @include(if: $showGames) {\\n ...GameKuratorGroupGame\\n game {\\n playerCount @include(if: $isActivePlayersFeatureFlagOn)\\n }\\n }\\n filtersProvider: filters(type: provider) @include(if: $showProviders) {\\n count\\n group {\\n id\\n translation\\n gameCount\\n }\\n }\\n }\\n}\\n\\nfragment GameCardKuratorGame on GameKuratorGame {\\n id\\n name\\n slug\\n thumbnailUrl\\n isBlocked\\n groupGames {\\n group {\\n translation\\n type\\n id\\n slug\\n }\\n }\\n}\\n\\nfragment GameKuratorGroup on GameKuratorGroup {\\n id\\n slug\\n translation\\n icon\\n type\\n}\\n\\nfragment GameKuratorGroupGame on GameKuratorGroupGame {\\n id\\n game {\\n ...GameCardKuratorGame\\n }\\n}\\n","variables":{"slug":"recommended-slots","limit":30,"sort":"popular","showGames":true,"offset":0}}'
Через Postman он отдает нормальный респонз, но когда делаю на php, то в респонзе постоянно ошибка:
Client error: `POST https://stake.com/_api/graphql` resulted in a `400 Bad Request` response:\n
{"message":"unknown","isSafeError":true}
Что я делаю не так?
Моя попытка отправить запрос:
public function handle(): void
{
$qraphQl = '
query;
query SlugKuratorGroup($slug: String!, $limit: Int!, $offset: Int!, $showGames: Boolean = true, $sort: GameKuratorGroupGameSortEnum = popular, $showProviders: Boolean = false, $filterIds: [String!], $isActivePlayersFeatureFlagOn: Boolean = false, $language: LanguageEnum = en) {
slugKuratorGroup(slug: $slug) {
...GameKuratorGroup
gameCount(filterIds: $filterIds, language: $language)
groupGamesList(
limit: $limit
offset: $offset
sort: $sort
filterIds: $filterIds
language: $language
) @include(if: $showGames) {
...GameKuratorGroupGame
game {
playerCount @include(if: $isActivePlayersFeatureFlagOn)
}
}
filtersProvider: filters(type: provider) @include(if: $showProviders) {
count
group {
id
translation
gameCount
}
}
}
}
fragment GameCardKuratorGame on GameKuratorGame {
id
name
slug
thumbnailUrl
isBlocked
groupGames {
group {
translation
type
id
slug
}
}
}
fragment GameKuratorGroup on GameKuratorGroup {
id
slug
translation
icon
type
}
fragment GameKuratorGroupGame on GameKuratorGroupGame {
id
game {
...GameCardKuratorGame
}
}
';
$cookieParser = new CookieParser;
$cookie = $cookieParser::fromString('currency_currency=btc; currency_hideZeroBalances=false; currency_currencyView=crypto; currency_bankingCurrencies=[]; session_info=undefined; fiat_number_format=en; sidebarView=hidden; sportsSearch=["Liverpool FC","Kansas City Chiefs","Los Angeles Lakers","FC Barcelona","FC Bayern Munich"]; sportMarketGroupMap={}; oddsFormat=decimal; locale=ru; intercom-id-cx1ywgf2=fa28ebad-4de3-4fcf-a73d-fb30f8caaf8b; intercom-session-cx1ywgf2=; intercom-device-id-cx1ywgf2=e49f924a-7e65-4aeb-ad46-c951d831a34c; cookie_consent=true; casinoSearch=["Money Cart 4","Toro Wilds Reel","g","island","Monopoly"]; cf_clearance=93tJNV1c0E3_IZReWOasBVWWd.Dlx0bMeNaRvtAyEBQ-1710700146-1.0.1.1-oMFBorHTLXRLJidFOrO72T9yGvSjKsLZdY6j7v6lxeOtZ.LdMuFg2nEFYEDO0WIFpQrPhOtzcsJ7Klz4J45Bcg; g_state={"i_p":1711307189489,"i_l":3}; leftSidebarView_v2=expanded; __cf_bm=7hQVlUfBJbMIr6PDirSQiYXVxPg6m7ekIhzTfoNEEXc-1710703806-1.0.1.1-5J3CPoPkjVXcmNo3YEV8ANDI2Cn34Z3zEpZYwxjLCb4WI1V_hZ52PwDjsvY9P4brNGRphPXXkU_kEPdOo_vXWA; mp_e29e8d653fb046aa5a7d7b151ecf6f99_mixpanel=%7B%22distinct_id%22%3A%20%22%24device%3A18e33330d6681f-002f8430cc4cd5-1d525637-1ea000-18e33330d6681f%22%2C%22%24device_id%22%3A%20%2218e33330d6681f-002f8430cc4cd5-1d525637-1ea000-18e33330d6681f%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fstake.com%2Fru%3F__cf_chl_tk%3Du9xXl039mQbVZQpJQguPdTVQR8sX7eI05v7nVC9mzyo-1710255959-0.0.1.1-1557%22%2C%22%24initial_referring_domain%22%3A%20%22stake.com%22%2C%22__mps%22%3A%20%7B%7D%2C%22__mpso%22%3A%20%7B%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fstake.com%2Fru%3F__cf_chl_tk%3Du9xXl039mQbVZQpJQguPdTVQR8sX7eI05v7nVC9mzyo-1710255959-0.0.1.1-1557%22%2C%22%24initial_referring_domain%22%3A%20%22stake.com%22%7D%2C%22__mpus%22%3A%20%7B%7D%2C%22__mpa%22%3A%20%7B%7D%2C%22__mpu%22%3A%20%7B%7D%2C%22__mpr%22%3A%20%5B%5D%2C%22__mpap%22%3A%20%5B%5D%2C%22%24search_engine%22%3A%20%22google%22%7D');
$cookieJar = CookieJar::fromArray($cookie->toArray(), 'stake.com');
try {
$response = $this->client->request(
Request::METHOD_POST,
'https://stake.com/_api/graphql',
[
RequestOptions::HEADERS => [
'content-type' => 'application/json',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
'x-language' => 'ru'
],
RequestOptions::COOKIES => $cookieJar,
RequestOptions::FORM_PARAMS => [
'query' => $qraphQl,
'variables' => json_encode([
'slug' => 'pragmatic-play',
'language' => 'ru',
'offset' => 0,
'showGames' => true,
'showProviders' => true,
'isActivePlayersFeatureFlagOn' => true,
'sort' => 'userCount',
'filterIds' => null,
'limit' => 39,
], JSON_THROW_ON_ERROR)
],
],
);
} catch (\Throwable $exception) {
dd($exception->getMessage());
}
dd($response->getBody()->getContents());
}
Нужно написать request к https://stake.com/_api/graphql и указать что. делал не так.
Заявки фрилансеров
Похожие заказы
- Веб-программирование1 исполнительЗавершенгод назад
- $40
Требуется доработка проекта на Laravel: удалить текущую платежную систему и внедрить функцию пополнения прямым переводом. Пользователь должен выбирать метод, вводить сумму и получать реквизиты для оплаты. Заявки будут поступать в админку для ручной проверки, также предусмотрена кнопка для связи в Telegram на случай вопросов.
Веб-программирование3 заявкиЗакрытгод назад Необхідно розробити та інтегрувати модуль для роботи із растровими картами на веб-платформі Laravel. Модуль має включати адмін панель для створення карт, обведення контурів, встановлення відміток датчиків та відображення їх показників. Пріоритет - використання плагіну Mapbox. Користувачі повинні мати можливість створювати карти в межах свого аккаунту.
Веб-программирование2 заявкиЗакрытгод назад- $20
Разработайте два Bash-скрипта: первый для автоматического изменения регистра строк (нижний на верхний и наоборот), второй для преобразования имени файла в вид НаСтРоЙкИ. Необходимо учесть корректное выполнение заданий для работы с именами файлов и каталогов.
Веб-программирование4 заявкиЗакрытгод назад Необходимо реализовать вывод авторов и количества их статей на WordPress блоге, используя ACF и custom-поля. В виджете должны отображаться имена авторов с количеством статей, учитывая, что некоторые статьи могут иметь двух авторов. Требуется разработать функцию для подсчета и отображения данных без использования стандартного поля автора.
Веб-программирование1 заявкаЗакрытгод назадНеобходимо восстановить сайт из веб-архива на платформе WordPress. Домен и хостинг уже предоставлены. Ищется специалист для регулярного воссоздания сайтов на эксп. доменах. Укажите используемое ПО, цену и сроки выполнения.
Веб-программирование5 заявокЗакрытгод назадНеобходимо имплементировать TecDoc API в MVP интернет-магазина автозапчастей на Angular и Nest.js. Задачи включают добавление товара из TecDoc, реализацию фильтров, фильтрацию по марка-модель-год-объем двигателя, поиск по названию и кросс номерам, а также опциональное добавление товара в корзину. Возможна дальнейшая работа над проектом.
Веб-программирование5 заявокЗакрытгод назад- $100
Задача включает в себя исправление ошибок на сайте, таких как увеличение скорости загрузки на компьютере и мобильных устройствах, настройка 301 редиректов, канонических страниц и файла robots.txt. Также необходимо проверить сайт на наличие вирусов, добавить Sitemap.xml в Google Webmaster Tools и провести проверку кеширования и ошибок верстки.
Веб-программирование3 заявкиЗакрытгод назад - $100
Необходимы поправки на сайте, включая увеличение скорости загрузки на компьютере и мобильных устройствах, проверку и удаление дублей страниц, а также настройку 301 редиректов и канонических страниц. Требуется также настройка файла robots.txt для оптимизации индексации.
Веб-программирование4 заявкиЗакрытгод назад Требуется специалист по нейросетям для разработки бота, который будет взаимодействовать с потенциальными работниками в dating-приложениях и предлагать им работу. Бот должен быть настроен для корректного общения и не содержать мошеннических элементов.
Веб-программирование3 заявкиЗакрытгод назад