2 require_once('../../env.inc.php');
3 require_once 'checks.php';
5 oauthconsumer_CheckUser();
7 $verifier = $_GET['oauth_verifier']?$_GET['oauth_verifier']:getStringFromPost('oauth_verifier');
8 $token = $_GET['oauth_token']?$_GET['oauth_token']:getStringFromPost('oauth_token');
10 if(!$verifier || !$token) {
11 exit_error("OAuth parameters not found.");
14 <form action="callback.php" method="post">
16 echo '<input type="hidden" name="oauth_verifier" value="'.$verifier.'"/>';
17 echo '<input type="hidden" name="oauth_token" value="'.$token.'"/>';
18 echo '<input type="hidden" name="provider_id" value="'.$_COOKIE['PROVIDER'].'"/>';
19 echo _('<b>Step 3: </b>Exchange the authorized request token for an access token');?>
21 <input type="submit" value="<?php echo _('Go') ?>"
24 $f_provider_id = getStringFromPost('provider_id');
27 $provider = OAuthProvider::get_provider($f_provider_id);
28 $provider_name = $provider->get_name();
29 $consumer_key = $provider->get_consumer_key();
30 $consumer_secret = $provider->get_consumer_secret();
31 $request_token_url = $provider->get_request_token_url();
32 $authorize_url = $provider->get_authorize_url();
33 $access_token_url = $provider->get_access_token_url();
35 $parameters = array("oauth_verifier"=>$verifier, "oauth_token"=>$token);
37 $ff_consumer = new OAuthConsumer($consumer_key, $consumer_secret);
38 $oauth_request_token = new OAuthToken($_COOKIE['OAUTH_TOKEN'], $_COOKIE['OAUTH_TOKEN_SECRET']);
40 $ff_request2 = OAuthRequest::from_consumer_and_token($ff_consumer, false, "GET", $access_token_url, $parameters);
41 $hmac = new OAuthSignatureMethod_HMAC_SHA1();
42 $ff_request2->sign_request($hmac, $ff_consumer, $oauth_request_token);
44 //sending request with curl
47 curl_setopt($curl, CURLOPT_URL, $ff_request2->to_url());
48 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
50 $access_token_string = curl_exec ($curl);
53 parse_str($access_token_string, $access_token_array);
54 $userid = session_get_user()->getID();
55 if(!$access_token_array['oauth_token'] || !$access_token_array['oauth_token_secret']) {
56 exit_error("Access Token not received.");
58 $new_access_token = new OAuthAccessToken($f_provider_id, $access_token_array['oauth_token'], $access_token_array['oauth_token_secret'], $userid);
59 $new_access_token->write_to_db();
61 echo _("New access token received and saved!<br>");
62 echo _("Access Token Key : ".$access_token_array['oauth_token']."<br>");
63 echo _("Access Token Secret : ".$access_token_array['oauth_token_secret']."<br>");