open All Channels
seplocked EVE Technology Lab
blankseplocked TeamSpeak For EVE - API Registration for TS3 - Version 1.3 Released!
 
This thread is older than 90 days and has been locked due to inactivity.


 
Pages: [1] 2 3 4 5

Author Topic

Agent Unknown
Caldari
Posted - 2010.02.04 21:39:00 - [1]
 

Edited by: Agent Unknown on 08/04/2010 20:44:33
Edited by: Agent Unknown on 08/04/2010 20:44:00
TeamSpeak For EVE

Version: 1.3.1

This script is a web-based application for people to register on your TeamSpeak 3 server to gain access to additional permissions and that sort of thing. It uses a PHP framework written by TeamSpeak staff themselves, so checkout the readme for more information on that. All it requires is the Limited API!

Features:

* Allows people to register on your TS server securely.
* The cron script, when set up to run automatically, keeps your TS secure by automatically stripping access when a character leaves the corp/alliance, or when standings are reset.
* Standings-based access, including "alt checking" to help against spies.
* Faction-based access! (untested)

Planned features:

* Use a separate group for each corp and/or alliance (access to private channels, etc)
* Assign client-specific rights to a "private" channel (officers for example).

A couple things to note:

* While I did test this myself, there could be possible bugs. Be sure to report them!
* READ the readme file for instructions on how to install!! It's not the friendliest install method, but it works for now. Embarassed
* PHP >=5.2 is required for the script to work.


Download link: Linkage

Enjoy!

NOTE: This project is currently no longer under active development until further notice.

Lena Planeswalker
Blend.
Nulli Tertius
Posted - 2010.02.05 20:06:00 - [2]
 

Edited by: Lena Planeswalker on 05/02/2010 20:09:22
I made something like this during my christmas vacation, the problem im now running into is that once a user "registers" the only way to remove it is to manually do it, for example if the person leaves the corp/alliance.

edit: but then again i am not saving the api data anywhere.

Agent Unknown
Caldari
Posted - 2010.02.05 20:09:00 - [3]
 

Originally by: Lena Planeswalker
I made something like this during my christmas vacation, the problem im now running into is that once a user "registers" the only way to remove it is to manually do it, for example if the person leaves the corp/alliance.


Yeah, I overcame that issue by storing the user's API in a table. This allows me to cross-reference their TS UID with their API, which makes it simple to simply run through each and check corp/alliance using the cron script. The alternative is to make TS run with a MySQL database and throw a reference table there, but I'd rather keep it simple.

Xornicon Altair
Woopatang
Primary.
Posted - 2010.02.05 20:41:00 - [4]
 

This looks good. We were considering something similar to this with hooks into our SMF forums which uses the ESAM module. If you'd be willing to do some extra work and find a way to hook it in, that would be cool. You can find ESAM info here: http://code.google.com/p/esam/

Agent Unknown
Caldari
Posted - 2010.02.06 04:56:00 - [5]
 

Originally by: Xornicon Altair
This looks good. We were considering something similar to this with hooks into our SMF forums which uses the ESAM module. If you'd be willing to do some extra work and find a way to hook it in, that would be cool. You can find ESAM info here: http://code.google.com/p/esam/


I'll see what I come up with. SMF may be easier to use for integration once I "attempt" to work in corp-specific server groups on TS itself. Currently, the integration with the phpBB 3 API mod is just an extra security step (comparing the specified API with the one stored in phpBB).

Snake O'Donell
Gallente
Core Impulse
Posted - 2010.02.10 03:04:00 - [6]
 

Any way we could get militia support integrated into this?

All you should have to pull is /char/FacWarStats.xml.aspx and the factionName attribute then verify against the list. I will try to see if I can add it in myself this week.

Agent Unknown
Caldari
Posted - 2010.02.10 15:48:00 - [7]
 

Originally by: Snake O'Donell
Any way we could get militia support integrated into this?

All you should have to pull is /char/FacWarStats.xml.aspx and the factionName attribute then verify against the list. I will try to see if I can add it in myself this week.


That should be simple enough...I'll see what I can do. There's quite a bit I want to do for a "new" release. Cool

Snake O'Donell
Gallente
Core Impulse
Posted - 2010.02.10 16:58:00 - [8]
 

I *think* I have gotten the FW info added in correctly, however I don't have a testing server up yet to do a quick test on it. It was pretty straight forward. I can email you the modded source if you want. I am going to play around with restricted access corp channels and stuff this afternoon using the setChannelGroup function in the library. That should be rather straightforward as well.

Agent Unknown
Caldari
Posted - 2010.02.10 21:07:00 - [9]
 

Originally by: Snake O'Donell
I *think* I have gotten the FW info added in correctly, however I don't have a testing server up yet to do a quick test on it. It was pretty straight forward. I can email you the modded source if you want. I am going to play around with restricted access corp channels and stuff this afternoon using the setChannelGroup function in the library. That should be rather straightforward as well.


Cool. I've actually written the FW stuff into it already, but I'd love to see the modded source to be sure I did it right. Embarassed

I'm sure it's fairly simple to mess with setChannelGroup, but using setServerGroup may also work since each corp can have its own group. Right now I'm working on standings-based access (which I may be able to test). All of that should be done by Friday...if not, it'll be next week since I'm gone this weekend.

Thanks for your help btw. Cool

Agent Unknown
Caldari
Posted - 2010.02.11 20:28:00 - [10]
 

Version 1.1 has been released. Here is the changelog:

============
VERSION 1.1 - 2/11/2010
============
* Added Faction Warfare verification (militia)
* Added standings-based verification
* Changed database configuration options from db.php to config.php
* Added more configuration options
* Added additional requirement: TeamSpeak 3 MUST have MySQL enabled.


Take note of the last option! If you don't know how to set up MySQL for TS3, please let me know. This is required for the cron script to function properly. Hope you enjoy it! ugh

Snake O'Donell
Gallente
Core Impulse
Posted - 2010.02.12 04:27:00 - [11]
 

I finally got a TS3 server setup to test this, I have tried several mods of verification, and I am getting error110(time out) whenever I try to reg a user. Also my ts server keeps diing on me for no reason =(

Agent Unknown
Caldari
Posted - 2010.02.12 05:31:00 - [12]
 

Edited by: Agent Unknown on 12/02/2010 05:31:50
Originally by: Snake O'Donell
I finally got a TS3 server setup to test this, I have tried several mods of verification, and I am getting error110(time out) whenever I try to reg a user. Also my ts server keeps diing on me for no reason =(


Check your logs. This script shouldn't crash it.

Edit: Also, make sure serverquery is enabled and the proper port is selected. Cool

Snake O'Donell
Gallente
Core Impulse
Posted - 2010.02.12 18:39:00 - [13]
 

Now getting error ID0.

Squizz Caphinator
Woopatang
Posted - 2010.02.12 19:50:00 - [14]
 

It's time to support this project! Look for me to be a regular pain in the ass hehe By the time I'm done working with you we'll have full ESAM integration with your TS3 module!

Agent Unknown
Caldari
Posted - 2010.02.12 23:54:00 - [15]
 

Originally by: Snake O'Donell
Now getting error ID0.

I'll need more information. Does it have a message that comes with it? Pastebin your config.php (edit out passwords and api obviously) so I can see what's up.

Originally by: Squizz Caphinator
It's time to support this project! Look for me to be a regular pain in the ass hehe By the time I'm done working with you we'll have full ESAM integration with your TS3 module!


Heh...that will likely come when roles-based (i.e, channels for "directors" and such) is ready to go. The phpBB3 integration is just an extra security layer; it could be modified a bit to work with SMF as well, unless you have something else in mind. Very Happy

Snake O'Donell
Gallente
Core Impulse
Posted - 2010.02.13 01:36:00 - [16]
 

http://pastebin.com/mac8165

Nothing other than error ID0.

Checking: - Situation Grey

Error: Cannot assign server group. Be sure that your name on the TeamSpeak server is correct. Your TeamSpeak name should be -S.G- GreatNova for verification. You can change it afterward.
Technical details:
(ID 0)

Agent Unknown
Caldari
Posted - 2010.02.14 01:24:00 - [17]
 

Originally by: Snake O'Donell
http://pastebin.com/mac8165

Nothing other than error ID0.

Checking: - Situation Grey

Error: Cannot assign server group. Be sure that your name on the TeamSpeak server is correct. Your TeamSpeak name should be -S.G- GreatNova for verification. You can change it afterward.
Technical details:
(ID 0)


It seems to be a bug with the faction warfare portion of the checking. This doesn't surprise me seeing how I can't test that portion. Embarassed

Try this:

IN functions.php FIND:

function checkFaction($f,$u,$api,$char) {
$url = "http://api.eve-online.com/char/FacWarStats.xml.aspx?userID=" . $u ."&apikey=" . $api . "&characterID=" . $char;
$xml = simplexml_load_file($url);
$r = (string) $xml->result->factionName;


ADD AFTER:
echo '<p>Faction check: Yours: '.$r.' - Allowed: '.$f.'</p>';


Show me the result after this.

Snake O'Donell
Gallente
Core Impulse
Posted - 2010.02.14 06:44:00 - [18]
 

Checking: - Situation Grey

Faction check: Yours: Gallente Federation - Allowed: Array

Error: Cannot assign server group. Be sure that your name on the TeamSpeak server is correct. Your TeamSpeak name should be -S.G- GreatNova for verification. You can change it afterward.
Technical details:
(ID 0)


Agent Unknown
Caldari
Posted - 2010.02.14 18:52:00 - [19]
 

Hmm...interesting. How about this then?

IN functions.php:

FIND


try {
$ts = TeamSpeak3::factory("serverquery://".$c->tsname.":".$c->tspass."@".$c->tshost.":".$c->tsport."/");
$virt = $ts->serverGetByPort($c->tscport);
$name = $ticker." ".$username;
$client = $virt->clientGetByName($name);
$client->addServerGroup($c->group);
}
catch(Exception $e) {
echo "<p>Error: Cannot assign server group. Be sure that your name on the TeamSpeak server is correct. Your
TeamSpeak name should be <strong>".$ticker." ".$username."</strong> for verification. You can change it afterward.</strong><br />
Technical details: <br />
(ID " . $e->getCode() . ") ". $e->getMessage() . "</p>";
die();
}


REPLACE WITH:

$ts = TeamSpeak3::factory("serverquery://".$c->tsname.":".$c->tspass."@".$c->tshost.":".$c->tsport."/");
$virt = $ts->serverGetByPort($c->tscport);
$name = $ticker." ".$username;
$client = $virt->clientGetByName($name);
$client->addServerGroup($c->group);


This should make it throw an uncaught exception and hopefully give more information.

Rockvell
Caldari
Russian Specnaz
Goonswarm Federation
Posted - 2010.02.15 14:32:00 - [20]
 

Hi,
Not work on my registration. It's set to verification by the alliance.
//Your corporation/alliance name. Used for standings verification.
public $myname = 'Red Alliance';

//Use "Alliance" mode. This mode only allows people from the specified alliance(s) to verify.
public $useally = true;

After entering all the necessary registration data is displayed message.

"Notice: Undefined variable: verbose in /var/www/html/ts3/verify.php on line 41
Checking: Red Alliance - Russian Specnaz

You are not allowed to register on this TeamSpeak server."

Help solve this problemIdea

Agent Unknown
Caldari
Posted - 2010.02.15 18:49:00 - [21]
 

Is your alliance in the $allylist array? $myname is used for standings validation.

I've received some much needed feedback and noticed some issues that should've been fixed a while ago. I'm working on those fixes now. Also, 1.2 will be the first to feature web-based configuration (don't expect it to be pretty though Laughing).

Thanks for all that tested it so far.

Rockvell
Caldari
Russian Specnaz
Goonswarm Federation
Posted - 2010.02.16 09:28:00 - [22]
 

Prescribed name of the alliance as you put in $ allylist array error was replaced by another. It is necessary to you in the next version to make a detailed instruction :-)
Server TS 3.0.0-beta18 [Build: 10190]

"Notice: Undefined variable: verbose in /var/www/html/ts3/verify.php on line 41
Checking: Red Alliance - Russian Specnaz


Notice: Undefined variable: key in /var/www/html/ts3/functions.php on line 55
Error: Cannot assign server group. Be sure that your name on the TeamSpeak server is correct. Your TeamSpeak name should be RSTC1 Rockvell for verification. You can change it afterward.
Technical details:
(ID 512) invalid clientID"

GreatNova
Amarr
Situation Grey
Posted - 2010.02.16 16:08:00 - [23]
 

Fatal error: Uncaught exception 'TeamSpeak3_Transport_Exception' in /var/www/ts/libraries/TeamSpeak3/Transport/TCP.php:55 Stack trace: #0 /var/www/ts/libraries/TeamSpeak3/Transport/TCP.php(103): TeamSpeak3_Transport_TCP->connect() #1 /var/www/ts/libraries/TeamSpeak3/Adapter/ServerQuery.php(70): TeamSpeak3_Transport_TCP->readLine() #2 /var/www/ts/libraries/TeamSpeak3/TeamSpeak3.php(180): TeamSpeak3_Adapter_ServerQuery->__construct(Object(TeamSpeak3_Transport_TCP)) #3 /var/www/ts/functions.php(57): TeamSpeak3::factory('serverquery://s...') #4 /var/www/ts/verify.php(52): tsAdd('-S.G-', 'GreatNova', 834245196, 'D2A69E5E2A7D452...') #5 {main} thrown in /var/www/ts/libraries/TeamSpeak3/Transport/TCP.php on line 55

Agent Unknown
Caldari
Posted - 2010.02.16 20:12:00 - [24]
 

Originally by: Rockvell
Prescribed name of the alliance as you put in $ allylist array error was replaced by another. It is necessary to you in the next version to make a detailed instruction :-)
Server TS 3.0.0-beta18 [Build: 10190]

"Notice: Undefined variable: verbose in /var/www/html/ts3/verify.php on line 41
Checking: Red Alliance - Russian Specnaz


Notice: Undefined variable: key in /var/www/html/ts3/functions.php on line 55
Error: Cannot assign server group. Be sure that your name on the TeamSpeak server is correct. Your TeamSpeak name should be RSTC1 Rockvell for verification. You can change it afterward.
Technical details:
(ID 512) invalid clientID"


Ah, okay. Invalid clientID means it couldn't find your name on TS. Make sure your name matches what it wants you to have it as. As for the notices, those are my fault and will be fixed with my next bugfix release.

Originally by: GreatNova
Fatal error: Uncaught exception 'TeamSpeak3_Transport_Exception' in /var/www/ts/libraries/TeamSpeak3/Transport/TCP.php:55 Stack trace: #0 /var/www/ts/libraries/TeamSpeak3/Transport/TCP.php(103): TeamSpeak3_Transport_TCP->connect() #1 /var/www/ts/libraries/TeamSpeak3/Adapter/ServerQuery.php(70): TeamSpeak3_Transport_TCP->readLine() #2 /var/www/ts/libraries/TeamSpeak3/TeamSpeak3.php(180): TeamSpeak3_Adapter_ServerQuery->__construct(Object(TeamSpeak3_Transport_TCP)) #3 /var/www/ts/functions.php(57): TeamSpeak3::factory('serverquery://s...') #4 /var/www/ts/verify.php(52): tsAdd('-S.G-', 'GreatNova', 834245196, 'D2A69E5E2A7D452...') #5 {main} thrown in /var/www/ts/libraries/TeamSpeak3/Transport/TCP.php on line 55


That error tells me that the library wasn't able to connect to the ServerQuery server on your TS3 server. Be sure that it's enabled and outside applications can access it. The default port is 10011.

Agent Unknown
Caldari
Posted - 2010.02.16 22:01:00 - [25]
 

Version 1.2 has been released. The OP will be modified with the new link.

The changelog:

========================================================
TeamSpeak For EVE
Coded by Agent Unknown

Version: 1.2

CHANGELOG
========================================================

============
VERSION 1.2 - 2/16/2010
============
* Removed phpBB3 API support. This was really not needed. May be replaced with roles integration.
* Changed lang.php from global variables to a class of its own.
* Added a couple configuration options and clarified some of the comments.
* Fixed a bug where notices would be thrown when adding users.
* fixed a bug where $verbose was not defined.
* Removed need for MySQL support within TS3. This was only used in the cron script.

I was unable to test the standings and faction based verification, so hopefully it works. Cool

Tobias Sjodin
Habitual Euthanasia
Pandemic Legion
Posted - 2010.02.17 11:09:00 - [26]
 

Hmm, verify screen goes blank and returns to the first page every time someone tries to fill in API. No error message, just blank screen: goes back to first page.

Tobias Sjodin
Habitual Euthanasia
Pandemic Legion
Posted - 2010.02.17 11:48:00 - [27]
 

My users get this error:

Error: Cannot assign server group. Be sure that your name on the TeamSpeak server is correct. Your TeamSpeak name should be <TICKER user name> for verification. You can change it afterward.

Technical details:

(ID 0) invalid uri supplied


Tobias Sjodin
Habitual Euthanasia
Pandemic Legion
Posted - 2010.02.17 12:08:00 - [28]
 

This is what the TS Server is setup with:

2010-02-17 10:25:49.203916|INFO |VirtualServer | 1| listening on 0.0.0.0:9987
2010-02-17 10:25:49.207748|INFO |Query | | listening on 0.0.0.0:10011

My config.php is setup like this:

//ServerQuery Host
public $tshost = '<my server name (eg. brick.com>';
//TeamSpeak ServerQuery Name
public $tsname = 'BR1CK TS3 SERVER';
//ServerQuery Password
public $tspass = '<as we have no password I left this blank>';
//ServerQuery Port
public $tsport = '10011';
//TeamSpeak client port (this is not the same as the serverquery port!)
public $tscport = '9987';


Tobias Sjodin
Habitual Euthanasia
Pandemic Legion
Posted - 2010.02.17 12:17:00 - [29]
 

Edited by: Tobias Sjodin on 17/02/2010 12:19:08
n/m

Figured out that it's the serveradmin name and password you wanted, now it works, except with this error:


Syntax error: Column count doesn't match value count at row 1


OP, could this help?
[CLICK ME]

Agent Unknown
Caldari
Posted - 2010.02.17 17:56:00 - [30]
 

Edited by: Agent Unknown on 17/02/2010 18:01:59
Edited by: Agent Unknown on 17/02/2010 17:58:58
Originally by: Tobias Sjodin
Edited by: Tobias Sjodin on 17/02/2010 12:19:08
n/m

Figured out that it's the serveradmin name and password you wanted, now it works, except with this error:


Syntax error: Column count doesn't match value count at row 1


OP, could this help?
[CLICK ME]



Yep...I know what that error is. In my effort to release a fix, I had to add a new column to the database; but I forgot to fix the setup.php file to include the new column.

When you have a chance to, create a file called fix.php in the same directory and put this in:


<?php
require_once("db.php");
require_once("config.php");
$db = new DB;
$c = new Config;
$sql = "ALTER TABLE `".$c->db_name."`.`tsclient` ADD COLUMN `cid` VARCHAR(45) NOT NULL AFTER `charid`;";
$r = $db->send($sql);
if (!$r) die("Error.");
else {
echo "Done.";
unlink(fix.php);
}
?>


Fixed setup.php file (delete table if you want to): Linkage


Pages: [1] 2 3 4 5

This thread is older than 90 days and has been locked due to inactivity.


 


The new forums are live

Please adjust your bookmarks to https://forums.eveonline.com

These forums are archived and read-only