У меня небольшая проблема с OAuth для Google, я использую Jim Saunder Libraire для CodeIgniter (http://codeigniter.com/wiki/OAuth_for_Google), но когда я пришел к своей функции access_youtube, которая выглядит так:
public function access_youtube()
{ //STEP 2
// Here is the first call to load the library
$params['key'] = 's390075769.onlinehome.fr';
$params['secret'] = 'iHD72YKzWmbm8VTwncht_E-d';
// We can change the signing algorithm and http method by setting the following in your params array.
$params['algorithm'] = 'HMAC-SHA1';
// $params['method'] = "GET";
// We need to reload the library since we left our site beetween Step 1 & 2.
$this->load->library('google_oauth', $params);
// We are using HMAC signing you need to specify the token_secret you got from the request step as the second parameter of this method. So
$token_secret = $this->session->userdata('token_secret');
$oauth = $this->google_oauth->get_access_token(false, $token_secret);
// The access method will return an array with keys of ‘oauth_token’, and ‘oauth_token_secret’
// These values are your access token and your access token secret. We should store these in our database.
$this->session->set_userdata('oauth_token', $oauth['oauth_token']);
$this->session->set_userdata('oauth_token_secret', $oauth['oauth_token_secret']);
// Now you have an access token and can make google service requests on your users behalf
redirect(site_url());
}
Я получил несколько сообщений об ошибках:
неопределенный индекс: oauth_token
Неопределенный индекс: oauth_token_secret
, которые ссылаются на строки $ this-> session-> set_userdata ...
и после каждого сообщения об ошибке я получаю:
Сообщение: невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался с /homepages/7/d390075755/htdocs/system/core/Exceptions.php:170)
Имя файла: библиотеки / Session.php
Номер строки: 671
, который, я думаю, связан с предыдущим сообщением об ошибке.
поэтому я попробовал это в конструкторе:
class Example extends CI_Controller
{
private $CI;
public function __construct()
{
parent::__construct();
$this->CI =& get_instance();
$this->CI->load->library('session');
$oauth = array();
$oauth['oauth_token_secret']='';
$oauth['oauth_token']='';
}
как раз перед моей функцией, но она ничего не делает ... и я боюсь, что потеряю свои переменные сеанса с помощью Google ... не так ли? Получу ли я свои токены от Google?