Получите электронную почту от bitbucket

Мне нужно реализовать авторизацию bitbucket в проекте Symfony2. Я использую HWIOAuthBundle и Guzzle для формирования запроса. Чтобы получать электронные письма, мне нужно получить ответ от json от
https://bitbucket.org/api/1.0/users/{имя_учетной_записи} / электронная почта
Но каждый раз, когда я получаю

Ответ клиента об ошибке [url] https://bitbucket.org/api/1.0/users/{accountname} / emails [код статуса] 401 [фраза причины] НЕ РАЗРЕШЕНО «

Но я уже авторизован в Bitbucket.
Вот мой код:

$url = 'https://bitbucket.org/api/1.0/users/'.$response->getUsername().'/emails';
$client = new Client();
$request = $client->createRequest('GET', $url);
$emails = $client->send($request);

3

Решение

Похоже, вы не предоставляете токен доступа при выполнении запросов, поэтому Bitbucket отклоняет их с помощью 401.

От их документы:

Как только у вас есть токен доступа, согласно RFC-6750, вы можете использовать его в запросе любым из следующих способов (перечисленных от наиболее до наименее желательных):

  1. Отправьте его в заголовке запроса: Авторизация: Bearer {access_token}
  2. Включите его в тело POST (application / x-www-form-urlencoded) как access_token = {access_token}
  3. Поместите в строку запроса не POST:? Access_token = {access_token}

Сначала я посмотрю документы используемой вами библиотеки OAuth и выясню, как получить токен доступа пользователя для конкретной службы (в вашем случае Bitbucket). Затем я бы включил его в заголовки запроса в Guzzle:

$client = new Client();

$request = $client->createRequest(
'GET',
'https://bitbucket.org/api/1.0/users/' . $response->getUsername() . '/emails',
[
'Authorization' => 'Bearer ' . $userOauthAccessToken,
]
);

$emails = $client->send($request);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]