static function LingotekOAuthRequester::requestRequestToken in Lingotek Translation 7.4
Same name and namespace in other branches
- 7.7 lib/oauth-php/library/LingotekOAuthRequester.php \LingotekOAuthRequester::requestRequestToken()
- 7.5 lib/oauth-php/library/LingotekOAuthRequester.php \LingotekOAuthRequester::requestRequestToken()
- 7.6 lib/oauth-php/library/LingotekOAuthRequester.php \LingotekOAuthRequester::requestRequestToken()
* Request a request token from the site belonging to consumer_key * *
Parameters
string consumer_key: * @param int usr_id * @param array params (optional) extra arguments for when requesting the request token * @param string method (optional) change the method of the request, defaults to POST (as it should be) * @param array options (optional) options like name and token_ttl * @param array curl_options optional extra options for curl request * @exception OAuthException2 when no key could be fetched * @exception OAuthException2 when no server with consumer_key registered * @return array (authorize_uri, token)
1 call to LingotekOAuthRequester::requestRequestToken()
- googledocs.php in lib/
oauth-php/ example/ client/ googledocs.php
File
- lib/
oauth-php/ library/ LingotekOAuthRequester.php, line 145
Class
Code
static function requestRequestToken($consumer_key, $usr_id, $params = null, $method = 'POST', $options = array(), $curl_options = array()) {
LingotekOAuthRequestLogger::start();
if (isset($options['token_ttl']) && is_numeric($options['token_ttl'])) {
$params['xoauth_token_ttl'] = intval($options['token_ttl']);
}
$store = OAuthStore::instance();
$r = $store
->getServer($consumer_key, $usr_id);
$uri = $r['request_token_uri'];
$oauth = new LingotekOAuthRequester($uri, $method, $params);
$oauth
->sign($usr_id, $r, '', 'requestToken');
$text = $oauth
->curl_raw($curl_options);
if (empty($text)) {
throw new OAuthException2('No answer from the server "' . $uri . '" while requesting a request token');
}
$data = $oauth
->curl_parse($text);
if ($data['code'] != 200) {
throw new OAuthException2('Unexpected result from the server "' . $uri . '" (' . $data['code'] . ') while requesting a request token');
}
$token = array();
$params = explode('&', $data['body']);
foreach ($params as $p) {
@(list($name, $value) = explode('=', $p, 2));
$token[$name] = $oauth
->urldecode($value);
}
if (!empty($token['oauth_token']) && !empty($token['oauth_token_secret'])) {
$opts = array();
if (isset($options['name'])) {
$opts['name'] = $options['name'];
}
if (isset($token['xoauth_token_ttl'])) {
$opts['token_ttl'] = $token['xoauth_token_ttl'];
}
$store
->addServerToken($consumer_key, 'request', $token['oauth_token'], $token['oauth_token_secret'], $usr_id, $opts);
}
else {
throw new OAuthException2('The server "' . $uri . '" did not return the oauth_token or the oauth_token_secret');
}
LingotekOAuthRequestLogger::flush();
// Now we can direct a browser to the authorize_uri
return array(
'authorize_uri' => $r['authorize_uri'],
'token' => $token['oauth_token'],
);
}