Создать запрос на жадность - PullRequest
0 голосов
/ 31 октября 2019

Извиняюсь, если этот вопрос плохо сформулирован. Я подозреваю, что делаю вещи намного сложнее, чем они есть на самом деле.

Проще говоря, я пытаюсь сгенерировать токен доступа с помощью OAuth2 из конечной точки API.

Нам дан маркер обновления на очень длительный срок. Согласно документации API, рабочий процесс выглядит следующим образом:

Рабочий процесс аутентификации Рабочий процесс аутентификации состоит из двух этапов:

  1. Используйте свой токен обновления дляполучить клиентский токен доступа
  2. Использовать клиентский токен доступа для доступа к ресурсам

В Почтальоне следуйте этому протоколу enter image description here

И успешно получить токен доступа. (см. рисунок)

Используя функцию «Код» в Postman, я генерирую следующий PHP

<?php

$request = new HttpRequest();
$request->setUrl('https://api-train.daxko.com/v3/partners/oauth2/token');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'cache-control' => 'no-cache',
  'Connection' => 'keep-alive',
  'Content-Length' => '559',
  'Accept-Encoding' => 'gzip, deflate',
  'Content-Type' => 'multipart/form-data; boundary=--------------------------158986490184667130446156',
  'Host' => 'api-train.daxko.com',
  'Postman-Token' => '28b9d8ac-d0ae-4036-9a61-202e9b39b220,f50fd74d-d827-4d50-baf5-1b155072bf32',
  'Cache-Control' => 'no-cache',
  'Accept' => '*/*',
  'User-Agent' => 'PostmanRuntime/7.19.0',
  'Authorization' => 'Bearer eyJhbGciOiJIUzI1NiIsI3ZWJzaXRlX3RyYWluLWF1dGgiLCJzdWIiOiJmbWN3ZWJzaXRlX3RyYWluIiwiaWF0IjoxNTcwNTQ4OTE3LCJleHAiOjE1NzA1NDg5MTcsImFwaSI6Im9wc19hcGlfdjJfYXV0aCJ9.EnbGN121Ei5hlkPFT6Iqyd1h9_WXDGKplu5RsCH5QZs',
  'content-type' => 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
));

$request->setBody('------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="grant_type"

client_credentials
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="client_id"

fmcwebsite_train
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="client_secret"

blC}g!!E@R_Zm{6?4{+_k.VLH
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="scope"

client:2069
------WebKitFormBoundary7MA4YWxkTrZu0gW--');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

Как запросить токен доступа, используя токен обновления с помощью Guzzle? (OAuth2)

Примечание. В документации API указано, что все запросы должны быть Grant_Type = Client Credentials

...