Токен доступа пуст с GuzzleHttp - PullRequest
1 голос
/ 09 апреля 2019

Когда я пытаюсь установить соединение с Microsoft Graph с помощью следующего кода:

$headers = [
    'Authorization: Bearer ' . $this->getAccessToken(),
    'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8',
    'Preference-Applied: odata.track-changes'
];
$response = $this->guzzle->request('GET', 'https://graph.microsoft.com/v1.0/me/calendarview/delta?startdatetime=2017-12-12T00:00:00Z&enddatetime=2020-12-13T00:00:00Z'. ['headers' => $headers], ['debug' => true]);

, который выдает ошибку: Access token is empty

И отладка дает мне следующее:

  • О подключении () к порту graph.microsoft.com 443 (# 0)
  • Попытка 40.126.9.112 ...
  • Подключено к графику.microsoft.com (40.126.9.112) порт 443 (# 0)
  • Инициализация NSS с помощью certpath: sql: / etc / pki / nssdb
  • CAfile: / etc / pki / tls / certs/ca-bundle.crt CApath: нет
  • SSL-соединение с использованием TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • Сертификат сервера:
  • тема: CN = graph.microsoft.com
  • startдата: 27 января 19:09:45 2019 по Гринвичу
  • срок действия: 27 января 19:09:45 2021 по Гринвичу
  • общее имя: graph.microsoft.com
  • эмитент: CN = Microsoft IT TLS CA 2, OU = Microsoft IT, O = Microsoft Corporation, L = Редмонд, ST = Вашингтон, C = США

    GET /v1.0/me/calendarview/delta?startdatetime=2017-12-12T00: 00: 00Z & enddatetime = 2020-12-13T00: 00: 00ZArray HTTP / 1.1 Пользователь-агент: GuzzleHttp / 6.3.3 curl / 7.29.0 PHP / 5.6.40 Хост: graph.microsoft.com

Каким-то образом это работает в Почтальоне, когда я даю те же самые детали, однако, как вы можете видеть, код после Bearer пуст. Я сделалотметьте $this->getAccessToken() и он определенно содержит токен.

Что я здесь не так делаю?

1 Ответ

3 голосов
/ 09 апреля 2019
        $headers = [
        "Authorization" => "Bearer". $token,
        'Content-Type' => 'application/json'
    ];

$response = $this->guzzle->request('GET', 'https://graph.microsoft.com/v1.0/me/calendarview/delta?startdatetime=2017-12-12T00:00:00Z&enddatetime=2020-12-13T00:00:00Z', ['headers' => $headers], ['debug' => true]);

У вас была точка после URL, вместо этого вам нужна была запятая. Также ваш массив $ headers должен быть отформатирован как отношение "$key => $values" для передачи в запросе на жадность.

...