views:

654

answers:

4

I would like to know where i can find my callback url in ci? Im quite new to it so not really sure.

Here is the lib im using.

<?php

class Home extends Controller {

    function Home()
    {
        parent::Controller();   
    }

    public function index()
    {
        // This is how we do a basic auth:
        // $this->twitter->auth('user', 'password');

        // Fill in your twitter oauth client keys here

        $consumer_key = '';
        $consumer_key_secret = '';

        // For this example, we're going to get and save our access_token and access_token_secret
        // in session data, but you might want to use a database instead :)

        $this->load->library('session');

        $tokens['access_token'] = NULL;
        $tokens['access_token_secret'] = NULL;

        // GET THE ACCESS TOKENS

        $oauth_tokens = $this->session->userdata('twitter_oauth_tokens');

        if ( $oauth_tokens !== FALSE ) $tokens = $oauth_tokens;

        $this->load->library('twitter');

        $auth = $this->twitter->oauth($consumer_key, $consumer_key_secret, $tokens['access_token'], $tokens['access_token_secret']);

        if ( isset($auth['access_token']) && isset($auth['access_token_secret']) )
        {
            // SAVE THE ACCESS TOKENS

            $this->session->set_userdata('twitter_oauth_tokens', $auth);

            if ( isset($_GET['oauth_token']) )
            {
                $uri = $_SERVER['REQUEST_URI'];
                $parts = explode('?', $uri);

                // Now we redirect the user since we've saved their stuff!

                header('Location: '.$parts[0]);
                return;
            }
        }

        // This is where  you can call a method.

        $this->twitter->call('statuses/update', array('status' => 'Testing CI Twitter oAuth sexyness by @elliothaughin'));

        // Here's the calls you can make now.
        // Sexy!

        /*
        $this->twitter->call('statuses/friends_timeline');
        $this->twitter->search('search', array('q' => 'elliot'));
        $this->twitter->search('trends');
        $this->twitter->search('trends/current');
        $this->twitter->search('trends/daily');
        $this->twitter->search('trends/weekly');
        $this->twitter->call('statuses/public_timeline');
        $this->twitter->call('statuses/friends_timeline');
        $this->twitter->call('statuses/user_timeline');
        $this->twitter->call('statuses/show', array('id' => 1234));
        $this->twitter->call('direct_messages');
        $this->twitter->call('statuses/update', array('status' => 'If this tweet appears, oAuth is working!'));
        $this->twitter->call('statuses/destroy', array('id' => 1234));
        $this->twitter->call('users/show', array('id' => 'elliothaughin'));
        $this->twitter->call('statuses/friends', array('id' => 'elliothaughin'));
        $this->twitter->call('statuses/followers', array('id' => 'elliothaughin'));
        $this->twitter->call('direct_messages');
        $this->twitter->call('direct_messages/sent');
        $this->twitter->call('direct_messages/new', array('user' => 'jamierumbelow', 'text' => 'This is a library test. Ignore'));
        $this->twitter->call('direct_messages/destroy', array('id' => 123));
        $this->twitter->call('friendships/create', array('id' => 'elliothaughin'));
        $this->twitter->call('friendships/destroy', array('id' => 123));
        $this->twitter->call('friendships/exists', array('user_a' => 'elliothaughin', 'user_b' => 'jamierumbelow'));
        $this->twitter->call('account/verify_credentials');
        $this->twitter->call('account/rate_limit_status');
        $this->twitter->call('account/rate_limit_status');
        $this->twitter->call('account/update_delivery_device', array('device' => 'none'));
        $this->twitter->call('account/update_profile_colors', array('profile_text_color' => '666666'));
        $this->twitter->call('help/test');
        */
    }
}

/* End of file welcome.php */
/* Location: ./system/application/controllers/home.php */

Thank you all

A: 

Hey.

I'm trying to make the library work, but I'm having some problems too. I followed the steps:

1 - Changed '$config['uri_protocol'] = "AUTO";' to '$config['uri_protocol'] = "PATH_INFO";' in config.php;

2 - Changed '$config['permitted_uri_chars'] = 'a-z 0-9~%.:_-';' to '$config['permitted_uri_chars'] = 'a-z? 0-9~%.:_-';'

3 - Copy MY_Input.php and Twitter.php to application/libraries;

4 - When I registered the application I gave the path to the controller: CALLBACK URL --> http://domain/project/home

The probem is, when I run my program I'm redirected to twitter to give authorization, but when I press the 'allow' button, I'm not redirect back to my application. Every time I press the 'allow' button, the twitter page for authorization just reloads, because I can see the oauth_token changing every time:

?oauth_token=PdKfvxGoIgb3st4GDhugfqoIR53sf2m3cYLX3SXbc

Anyone with this problem?

Luis
This should be a separate question, not an answer.
BenV
A: 
Luis
A: 

Hello,

There is a twitter codeigniter library on http://newdailyblog.blogspot.com/2010/07/download-tweetsigniter.html. Thanks.

Tahsin Hasan
A: 

@luis, your poblem is that you are using the same controller for oAuth and as a callback, this should be differente or at least different functions in the same controller.

SiRGt