function wp_connect_twitter() { if (!class_exists('twitterOAuth')) { include dirname(__FILE__) . '/OAuth/twitter_OAuth.php'; } $to = new twitterOAuth(T_APP_KEY, T_APP_SECRET, $_GET['oauth_token'], $_SESSION['oauth_token_secret']); $tok = $to->getAccessToken($_REQUEST['oauth_verifier']); $to = new twitterOAuth(T_APP_KEY, T_APP_SECRET, $tok['oauth_token'], $tok['oauth_token_secret']); $twitter = $to->OAuthRequest('http://api.twitter.com/1/account/verify_credentials.json', 'GET', array()); if ($twitter == "no auth") { return wp_noauth(); } $twitter = json_decode($twitter); $username = $sina->screen_name; $email = $username . '@twitter.com'; $tid = "ttid"; $uid = ifab(get_user_by_meta_value('twitterid', $username), email_exists($email)); $userinfo = array($tid, $username, $twitter->name, $twitter->profile_image_url, $twitter->url, $username, $tok['oauth_token'], $tok['oauth_token_secret']); if ($uid) { wp_connect_login($userinfo, $email, $uid); } else { wp_connect_login($userinfo, $email); } }
$to = new sohuOAuth(SOHU_APP_KEY, SOHU_APP_SECRET, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']); break; case "netease": $to = new neteaseOAuth(APP_KEY, APP_SECRET, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']); break; case "douban": $to = new doubanOAuth(DOUBAN_APP_KEY, DOUBAN_APP_SECRET, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']); break; case "tianya": $to = new tianyaOAuth(TIANYA_APP_KEY, TIANYA_APP_SECRET, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']); break; case "twitter": $to = new twitterOAuth(T_APP_KEY, T_APP_SECRET, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']); break; default: } $redirect_to = $_SESSION['wp_url_bind']; $last_key = $to->getAccessToken($_REQUEST['oauth_verifier']); if (!$last_key['oauth_token']) { wp_die("出错了,没有oauth_token或oauth_token不合法,请<a href='{$redirect_to}'>返回</a>重试!"); } $update = array('oauth_token' => $last_key['oauth_token'], 'oauth_token_secret' => $last_key['oauth_token_secret']); $tok = 'wptm_' . $callback; if ($redirect_to == WP_CONNECT) { update_option($tok, $update); } elseif ($_SESSION['user_id']) { update_usermeta($_SESSION['user_id'], $tok, $update); } header('Location:' . $redirect_to); } }