summaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
Diffstat (limited to 'actions')
-rw-r--r--actions/twittersettings.php48
1 files changed, 45 insertions, 3 deletions
diff --git a/actions/twittersettings.php b/actions/twittersettings.php
index 95649f706..1389666f9 100644
--- a/actions/twittersettings.php
+++ b/actions/twittersettings.php
@@ -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,