Twitter-integration - Twitter settings tab now saves Twitter credentials

darcs-hash:20080826225615-462f3-8d881eda7be43623e10b83e8d1e157f4096734cd.gz
This commit is contained in:
zach 2008-08-26 18:56:15 -04:00
parent a90b556e21
commit 661202be3e
2 changed files with 72 additions and 5 deletions

View File

@ -67,17 +67,59 @@ class TwittersettingsAction extends SettingsAction {
return;
}
// Verify this is a real Twitter user.
if (!$this->verify_credentials($twitter_username, $twitter_password)) {
$this->show_form(_('Could not verify your Twitter credentials!'));
return;
}
// Now that we have a valid Twitter user, we have to make another api call to
// find its Twitter ID.
$twitter_id = $this->get_twitter_id($twitter_username);
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) {
@ -103,7 +145,7 @@ class TwittersettingsAction extends SettingsAction {
}
// 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(
CURLOPT_USERPWD => "$user:$password",
CURLOPT_RETURNTRANSFER => true,

View File

@ -22,4 +22,29 @@ class Foreign_user extends DB_DataObject
/* the code above is auto generated do not remove the tag below */
###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;
}
}