Twitter-integration - Twitter settings tab now saves Twitter credentials
darcs-hash:20080826225615-462f3-8d881eda7be43623e10b83e8d1e157f4096734cd.gz
This commit is contained in:
parent
a90b556e21
commit
661202be3e
|
@ -67,17 +67,59 @@ class TwittersettingsAction extends SettingsAction {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Verify this is a real Twitter user.
|
||||||
if (!$this->verify_credentials($twitter_username, $twitter_password)) {
|
if (!$this->verify_credentials($twitter_username, $twitter_password)) {
|
||||||
$this->show_form(_('Could not verify your Twitter credentials!'));
|
$this->show_form(_('Could not verify your Twitter credentials!'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Now that we have a valid Twitter user, we have to make another api call to
|
||||||
$user = common_current_user();
|
// find its Twitter ID.
|
||||||
|
$twitter_id = $this->get_twitter_id($twitter_username);
|
||||||
$this->show_form(_('Twitter settings saved.'), true);
|
|
||||||
|
|
||||||
|
if (!$twitter_id) {
|
||||||
|
$this->show_form(sprintf(_('Unable to retrieve account information for "%s" from Twitter.'), $twitter_username));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = common_current_user();
|
||||||
|
|
||||||
|
$fuser = Foreign_user::save(
|
||||||
|
array(
|
||||||
|
'id' => $twitter_id,
|
||||||
|
'service' => '0', // Twitter
|
||||||
|
'uri' => "http://www.twitter.com/$twitter_username",
|
||||||
|
'nickname' => $twitter_username,
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'credentials' => $twitter_password
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!$fuser) {
|
||||||
|
$this->show_form(_('Unable to save your Twitter credentials!'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->show_form(_('Twitter settings saved.'), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_twitter_id($twitter_username) {
|
||||||
|
|
||||||
|
$uri = "http://twitter.com/users/show/$twitter_username.json";
|
||||||
|
|
||||||
|
common_debug("uri; $uri");
|
||||||
|
|
||||||
|
$data = $this->get_twitter_data($uri);
|
||||||
|
|
||||||
|
if (!$data) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = json_decode($data);
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $user->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
function verify_credentials($user, $password) {
|
function verify_credentials($user, $password) {
|
||||||
|
@ -103,7 +145,7 @@ class TwittersettingsAction extends SettingsAction {
|
||||||
}
|
}
|
||||||
|
|
||||||
// PHP's cURL the best thing to use here? -- Zach
|
// PHP's cURL the best thing to use here? -- Zach
|
||||||
function get_twitter_data($uri, $user, $password) {
|
function get_twitter_data($uri, $user=NULL, $password=NULL) {
|
||||||
$options = array(
|
$options = array(
|
||||||
CURLOPT_USERPWD => "$user:$password",
|
CURLOPT_USERPWD => "$user:$password",
|
||||||
CURLOPT_RETURNTRANSFER => true,
|
CURLOPT_RETURNTRANSFER => true,
|
||||||
|
|
|
@ -22,4 +22,29 @@ class Foreign_user extends DB_DataObject
|
||||||
|
|
||||||
/* the code above is auto generated do not remove the tag below */
|
/* the code above is auto generated do not remove the tag below */
|
||||||
###END_AUTOCODE
|
###END_AUTOCODE
|
||||||
|
|
||||||
|
static function save($fields) {
|
||||||
|
|
||||||
|
extract($fields);
|
||||||
|
|
||||||
|
$fuser = new Foreign_user();
|
||||||
|
|
||||||
|
$fuser->id = $id;
|
||||||
|
$fuser->service = $service;
|
||||||
|
$fuser->uri = $uri;
|
||||||
|
$fuser->nickname = $nickname;
|
||||||
|
$fuser->user_id = $user_id;
|
||||||
|
$fuser->credentials = $credentials;
|
||||||
|
$fuser->created = common_sql_now();
|
||||||
|
|
||||||
|
$result = $fuser->insert();
|
||||||
|
|
||||||
|
if (!$result) {
|
||||||
|
common_log_db_error($fuser, 'INSERT', __FILE__);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $fuser;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue