function wp_connect_tianya() { if (!class_exists('tianyaOAuth')) { include dirname(__FILE__) . '/OAuth/tianya_OAuth.php'; } $to = new tianyaOAuth(TIANYA_APP_KEY, TIANYA_APP_SECRET, $_GET['oauth_token'], $_SESSION['oauth_token_secret']); $tok = $to->getAccessToken($_REQUEST['oauth_verifier']); $to = new tianyaClient(TIANYA_APP_KEY, TIANYA_APP_SECRET, $tok['oauth_token'], $tok['oauth_token_secret']); $tianya = $to->get_user_info(); if (!is_array($tianya) || $tianya['error_msg']) { return wp_noauth(); } $tianya = $tianya['user']; $username = $tianya['user_id']; $email = $username . '@tianya.cn'; $url = "http://my.tianya.cn/" . $username; $tid = "tytid"; $uid = ifab(get_user_by_meta_value($tid, $username), email_exists($email)); $userinfo = array($tid, $username, $tianya['user_name'], $username, $url, $username, $tok['oauth_token'], $tok['oauth_token_secret']); if ($uid) { wp_connect_login($userinfo, $email, $uid); } else { wp_connect_login($userinfo, $email); } }
$tid = "DOUBAN"; } elseif ($_GET['OAuth'] == "tianya" || $_GET['OAuth'] == "TIANYA" || $_GET['callback'] == "TIANYA") { include_once "OAuth/tianya_OAuth.php"; $a = new tianyaOAuth(TIANYA_APP_KEY, TIANYA_APP_SECRET); $b = new tianyaOAuth(TIANYA_APP_KEY, TIANYA_APP_SECRET, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']); $tok = "wptm_tianya"; $tid = "TIANYA"; } else { return false; } if ($_GET['OAuth']) { $callback = get_bloginfo('wpurl') . '/wp-content/plugins/wp-connect/go.php?callback=' . $tid; $keys = $a->getRequestToken($callback); $aurl = $a->getAuthorizeURL($keys['oauth_token'], false, $callback); $_SESSION['keys'] = $keys; if (!$_SESSION['wp_url_bind']) { $aurl = get_bloginfo('url'); } header('Location:' . $aurl); } elseif ($_GET['callback']) { $last_key = $b->getAccessToken($_REQUEST['oauth_verifier']); $_SESSION['last_key'] = $last_key; $update = array('oauth_token' => $_SESSION['last_key']['oauth_token'], 'oauth_token_secret' => $_SESSION['last_key']['oauth_token_secret']); if ($_SESSION['wp_url_bind'] == WP_CONNECT) { update_option($tok, $update); } else { update_usermeta($_SESSION['user_id'], $tok, $update); } header('Location:' . $_SESSION['wp_url_bind']); } }