Like @matt_thomas said, we would need to see GetUsers() to see exactly how you are attempting to get the users.
Also, the official API does not natively support a way to get a viewer list through an endpoint. You get a list of all current viewers when you join a channel and membership is requested on login. However, this only happens one time. Furthermore, when a channel has over 1000 viewers it will only return a list of viewers who have op status.
Another way would be to monitor JOIN and PART with membership requested at login. However, this is also unreliable because at random times it will say a person has left a chat room when they actually didn’t leave, only to be added back after a few minutes. These notices are also only sent once every few minutes in general, so you could be awarding/not awarding points to the correct people.
The only other option would be to use third party API’s like @matt_thomas said. However since these are third party, it would be up to the independent developer to maintain the API and could stop working at any point in time.