1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 |
public function token_request()
{
$consumer = $this->__createConsumer();
$requestToken = $consumer->getRequestToken($this->Twitter->getUrl('oauth/request_token'), 'http://planamatch.com/webservices/twitter/callback/');
$this->Session->write('webservices.requestToken', $requestToken);
# OAUTH NORMAL AUTHORIZE
# $this->Session->write('webservices.grantRedirect', '/');
# $this->redirect($this->Twitter->getUrl('oauth/authorize').'?oauth_token='.$requestToken->key);
# TWITTER OAUTH AUTHENTICATE
# http://apiwiki.twitter.com/Sign-in-with-Twitter
$this->Session->write('webservices.grantRedirect', '/users/login');
}
/**
* Handles Twitter authentication response
* @return unknown_type
*/
public function callback()
{
$requestToken = $this->Session->read('webservices.requestToken');
$consumer = $this->__createConsumer();
$accessToken = $consumer->getAccessToken($this->Twitter->getUrl('oauth/access_token'), $requestToken);
// var_dump($requestToken);
// var_dump($accessToken);
// pr($_SERVER['QUERY_STRING']);
{
$this->Session->write('webservices.twitterToken', $accessToken);
$redirectUrl = $this->Session->read('webservices.grantRedirect');
$this->Session->del('webservices.grantRedirect');
$this->redirect($redirectUrl);
}
}
/**
* Performs a Sign in with Twitter action
* @return mixed
*/
function sign_in()
{
$accessToken = $this->Session->read('webservices.twitterToken');
if ($accessToken)
{
$consumer = $this->__createConsumer();
pr($accessToken);
pr($consumer);
pr($this->Twitter->getUrl('account/verify_credentials'));
$response = $consumer->get($accessToken->key, $accessToken->secret, $this->Twitter->getUrl('account/verify_credentials'));
$twitterCredentials = $this->Twitter->processResponse($response);
{
$this->__store_token($accessToken, $twitterCredentials['User']['id']);
return $twitterCredentials['User'];
}
}
return false;
} |
