使用android应用程序连接到Vbulletin论坛
我正在尝试制作一个连接到vbulletin论坛的小应用程序,以检索用户面板中未读主题的数量 我找到了如何从网站上检索信息,但问题是我不知道如何登录论坛使用android应用程序连接到Vbulletin论坛,android,vbulletin,Android,Vbulletin,我正在尝试制作一个连接到vbulletin论坛的小应用程序,以检索用户面板中未读主题的数量 我找到了如何从网站上检索信息,但问题是我不知道如何登录论坛 有人能给我一个建议或至少一个链接来帮助我开始吗?有几种登录网站的方法:表单登录、http身份验证、通过AJAX登录等 您需要调查在您的特定站点中如何登录 检查http连接(例如Firefox with Firebug可以查看连接),查看当您单击站点上的登录按钮时会建立何种连接。您需要通过应用程序发送一个带有用户名和用户密码md5哈希的POST请求
有人能给我一个建议或至少一个链接来帮助我开始吗?有几种登录网站的方法:表单登录、http身份验证、通过AJAX登录等 您需要调查在您的特定站点中如何登录
检查http连接(例如Firefox with Firebug可以查看连接),查看当您单击站点上的登录按钮时会建立何种连接。您需要通过应用程序发送一个带有用户名和用户密码md5哈希的POST请求。用户名字段名称应为“vb\u login\u username”,密码字段名称应为“vb\u login\u md5password”。一旦你明白了这一点,你就可以创建自己的自定义登录页面,让你的应用程序与之对话。这里有一些类似于我使用的东西。成功登录时,它以JSON格式返回用户信息
require_once('./global.php');
require_once(DIR . '/includes/functions_login.php');
define("BADLOGIN" , "You have entered an invalid username or password.");
define("BADLOGIN_STRIKES" , "You have entered an invalid username or password. You have %s login attempts left, after which you will be unable to login for 15 minutes.");
define("BADLOGIN_STRIKES_ZERO" , "You have entered an invalid username or password and used up your failed login quota. Please wait 15 minutes before trying to login again.");
// ################################ start login #################################
if ($_POST['do'] == 'login') {
$vbulletin->input->clean_array_gpc('p', array(
'vb_login_username' => TYPE_STR,
'vb_login_password' => TYPE_STR,
'vb_login_md5password' => TYPE_STR,
'vb_login_md5password_utf' => TYPE_STR,
'cookieuser' => TYPE_BOOL,
));
// can the user login?
$strikes = verify_strike_status($vbulletin->GPC['vb_login_username']);
// make sure our user info stays as whoever we were (for example, we might be logged in via cookies already)
$original_userinfo = $vbulletin->userinfo;
if (!verify_authentication(
$vbulletin->GPC['vb_login_username'], $vbulletin->GPC['vb_login_password'],
$vbulletin->GPC['vb_login_md5password'], $vbulletin->GPC['vb_login_md5password_utf'],
$vbulletin->GPC['cookieuser'], true))
{
exec_strike_user($vbulletin->userinfo['username']);
// load original user
$vbulletin->userinfo = $original_userinfo;
if ($vbulletin->options['usestrikesystem'])
{
if ((5 - $strikes) == 0)
{
die(json_encode(array(
'hasErrors' => (int) 1,
'errorMsg' => BADLOGIN_STRIKES_ZERO
)));
}
else
{
die(json_encode(array(
'hasErrors' => (int) 1,
'errorMsg' => sprintf(BADLOGIN_STRIKES, 5 - $strikes)
)));
}
}
else
{
die(json_encode(array(
'hasErrors' => (int) 1,
'errorMsg' => BADLOGIN
)));
}
}
exec_unstrike_user($vbulletin->GPC['vb_login_username']);
// create new session
process_new_login($vbulletin->GPC['logintype'], $vbulletin->GPC['cookieuser'], $vbulletin->GPC['cssprefs']);
$userinfo = fetch_user($vbulletin->userinfo['userid']);
// is banned user?
if ($userinfo['usergroupid'] == 8) {
process_logout();
}
// return userinfo
die(json_encode(array(
'success' => (int) 1,
'user' => $userinfo
)));
}
希望这能帮助你开始。顺便说一下,将字段名“cookieuser”设置为true,用户将在下次发出请求时被记住。我不确定。。。网站上的表单在提交时有站点操作:“所以这是一个http帖子,另外还有MD5哈希密码。