[Hybridauth] добавление провайдера battle.net
        Всем привет! 
Пытаюсь добавить нового провайдера в Hybridauth, но что-то не получается.
Создал в каталоге core/components/hybridauth/model/hybridauth/lib/Providers/ файл BattleNet.php с таким содержимым.
Теперь при попытке привязать учетку, в этом методе, в переменной response получаю ошибку:
    
    
                                                        Пытаюсь добавить нового провайдера в Hybridauth, но что-то не получается.
Создал в каталоге core/components/hybridauth/model/hybridauth/lib/Providers/ файл BattleNet.php с таким содержимым.
<?php
class Hybrid_Providers_BattleNet extends Hybrid_Provider_Model_OAuth2
{
	// default permissions
	public $scope = "wow.profile";
	public $state = "";
	function initialize()
	{
		parent::initialize();
		// Provider api end-points
		$this->api->authorize_url  = "https://eu.battle.net/oauth/authorize";
		$this->api->token_url      = "https://eu.battle.net/oauth/token";
		$this->state = bin2hex(openssl_random_pseudo_bytes(16));
		if (!empty($this->config['fields']))
			$this->fields = $this->config['fields'];
	}
	
	function loginBegin()
	{
		Hybrid_Auth::redirect( $this->api->authorizeUrl( array( "scope" => $this->scope, "state" => $this->state ) ) ); 
	}
}На dev.battle.net создал приложение, где получил client_id и client_secret, добавил в системные настройки нового провайдера.Теперь при попытке привязать учетку, в этом методе, в переменной response получаю ошибку:
{"error":"unauthorized","error_description":"An Authentication object was not found in the SecurityContext"}Не могу понять почему не удается получить access token. Прошу помощи, может кто сталкивался с подобным или может уже подключал battle.net =)    
            
                Поблагодарить автора            
            
                 Отправить деньги            
        
        
            Комментарии: 2
                Судя по всему дело в этом 
а battle.net принимает client_secret и client_id из заголовков запроса
 
github.com/bezumkin/modx-hybridauth/blob/master/core/components/hybridauth/model/hybridauth/lib/thirdparty/OAuth/OAuth2Client.php#L211
По идее надо сделать так в BattleNet.php:
                    To request access tokens, you need to provide the following POST parameters to the token URI, using your client ID and secret with HTTP Basic Authorizationнужно передать авторизацию в заголовках
а battle.net принимает client_secret и client_id из заголовков запроса
curl_setopt($ch,CURLOPT_HTTPHEADER,'Authorization: Basic ' . base64_encode($this->client_id .  ':' . $this->client_secret);github.com/bezumkin/modx-hybridauth/blob/master/core/components/hybridauth/model/hybridauth/lib/thirdparty/OAuth/OAuth2Client.php#L34github.com/bezumkin/modx-hybridauth/blob/master/core/components/hybridauth/model/hybridauth/lib/thirdparty/OAuth/OAuth2Client.php#L211
По идее надо сделать так в BattleNet.php:
function initialize()
	{
		parent::initialize();
		// Provider api end-points
		$this->api->authorize_url  = "https://eu.battle.net/oauth/authorize";
		$this->api->token_url      = "https://eu.battle.net/oauth/token";
               $this->api->curl_header      = array('Authorization: Basic ' . base64_encode($this->client_id .  ':' . $this->client_secret);
		$this->state = bin2hex(openssl_random_pseudo_bytes(16));
		if (!empty($this->config['fields']))
			$this->fields = $this->config['fields'];
	}            
                Большое спасибо за помощь! Токен получен! 
Буду дальше разбираться.
Это добавил в initialize():
                    Буду дальше разбираться.
Это добавил в initialize():
$this->api->curl_header = array('Authorization: Basic ' . base64_encode($this->api->client_id .  ':' . $this->api->client_secret));            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.