首页 文章

从bitbucket获取电子邮件

提问于
浏览
3

我需要在Symfony2项目上实现bitbucket授权 . 我正在使用HWIOAuthBundle和Guzzle来形成请求 . 要收到电子邮件,我需要从https://bitbucket.org/api/1.0/users/ /电子邮件中获取json响应但每次我都会收到

客户端错误响应[url] https://bitbucket.org/api/1.0/users//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);

1 回答

  • 1

    在发出请求时,您似乎没有提供访问令牌,因此Bitbucket拒绝使用401 .

    从他们的docs

    根据RFC-6750,您可以使用访问令牌,您可以通过以下任何方式在请求中使用它(从大多数到最不需要的列表):在请求标头中发送它:授权:承载包括它在(application / x-www-form-urlencoded)POST主体中作为access_token = 放入非POST的查询字符串:?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);
    

相关问题