discord / discord-api-docs

Official Discord API Documentation
https://discord.com/developers/docs/intro
Other
5.89k stars 1.24k forks source link

[Suggestion] Adding a way to see if user is "premium" #295

Closed Artuto closed 7 years ago

Artuto commented 7 years ago

Well, today a friend and me were wondering if on Discord API was a way to know if a user has a "status" like Nitro, Hype Squad, etc.

And we'd like to implement it into our bot (I know that depends on the library).

devsnek commented 7 years ago

Bots cannot see user profiles, which was a deliberate choice.

Artuto commented 7 years ago

Maybe a new way on the API to check it? Without checking profiles

night commented 7 years ago

Why do you need this information? It is currently intentionally only available on the profile.

z64 commented 7 years ago

Most people I've seen ask this (a fair amount since badges came out) want this information to provide "their own nitro perks" - a special role, channel, access to bot features - in their own servers, like one might do for integrations (twitch/yt subs) or other kinds of connections.

Personally, at least with regards to nitro, I dont think I'd want to see a lot of bots that gate features like that. While it's nice to encourage people to support discord, I think it kind of goes against the spirit of nitro; imagining an extreme (but unlikely) scenario where people might think "I can't get a good bot without nitro". I recognize that some already do this with services like patreon or their own donation solutions.

Artuto commented 7 years ago

Hmm No, I want this because I have a User Info command and would be cool showing an emote of Nitro/HypeSquad.

El jul 11, 2017 8:34 PM, "Zac Nowicki" notifications@github.com escribió:

Most people I've seen ask this (a fair amount since badges came out) want this information to provide "their own nitro perks" - a special role, channel, access to bot features - in their own servers, like one might do for integrations (twitch/yt subs) or other kinds of connections.

Personally, at least with regards to nitro, I dont think I'd want to see a lot of bots that gate features like that. While it's nice to encourage people to support discord, I think it kind of goes against the spirit of nitro; imagining an extreme (but unlikely) scenario where people might think "I can't get a good bot without nitro". I recognize that some already do this with services like patreon or their own donation solutions.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/hammerandchisel/discord-api-docs/issues/295#issuecomment-314619015, or mute the thread https://github.com/notifications/unsubscribe-auth/AI2CdUaP8ee5DN8kQ5muq-saHRPAaicpks5sNCKHgaJpZM4OTqBv .

devsnek commented 7 years ago

that is fine, but not everyone is you. the above scenario would 100% happen, and I don't think the pro of "nitro emojis in user info" outweigh the cons of people making the platform worse with pay2use bots.

nhooyr commented 7 years ago

I think you guys are exaggerating your reasoning. Why would someone gate features for nitro users? What do they get out of it? Nothing. I don't see it happening, at least not on a scale where it becomes a real problem.

And discord could instantiate a policy to ban bots that do that.

Artuto commented 7 years ago

No, you are misunderstanding, I'll never make a "nitro-only" feature on my bot (I dont have even nitro). I only want a way to check if a user has Nitro or something to add the Nitro emoji to their profile info.

z64 commented 7 years ago

@nhooyr quoting myself, I've already said that I'm exaggerating:

imagining an extreme (but unlikely) scenario where people might think "I can't get a good bot without nitro"

Myself, I wouldn't put it past some people (and I've seen several who have explicitly said they wanted to do something like I described), regardless of how "dumb" it might be in the bigger picture.

Moreover ; enforcing a "ban" on people who do this is a waste of Discord's time (if they were inclined to do so) when they can just not allow access to the endpoint / fields at all - as it is now.

@ArtutoGamer we understand. We're not talking about you - we're talking about any bot developer in general.

night commented 7 years ago

This is not something we want to expose to bots at this time.

advaith1 commented 4 years ago

Maybe premium_type access for bots should be reconsidered since bots can access user flags now (#1490)? Now bots can show most user badges without OAuth but not nitro and boost (and end-users might think that's a bug)

MinnDevelopment commented 4 years ago

You think they left out nitro by accident? If bots could see that it would just make nitro scam bots even easier.

advaith1 commented 4 years ago

Well nitro is a different field (premium_type vs flags)

HPaulson commented 4 years ago

I do think this would be an amazing addition to the API, however I do see both sides. It would be irresponsible of Discord to allow application to use this information for harmful or bad intentions, as mentioned in the extreme cases above. Additionally, I do believe this could be a very good feature that bots could use to enhance features. In my opinion, The cons out-way the pros, however it wouldn't be a bad consideration. Also, in the extreme negative case, Wouldn't you agree that an application that used the API and became "pay to use" using nitro wouldn't survive? How many "Donator-only" bots do you see around anymore? They don't get support, and i doubt that having those is the big issue here. As said before, this could open up the possibility for scams, and other bad things on the platform that as a community we don't want. With this in consideration, however, I also believe that giving access to other flags and not premium_type as stated by @advaith1 may seem like a bug to End Users. Additionally, I believe that things such as boosts should be considered in this situation. Allowing applications to access this information through the API could empower developers across communities to create, and add extra perks to boosting. Currently, the only "official" way to encourage and reward nitro boosters is by the Nitro Booster role, and allowing them access to additional channels or permissions etc. I feel like allowing developers to create applications to deliver more amazing and fun perks to these users would be a very good thing, and even allow communities come together and allow users to support their favorite communities a bit more.

advaith1 commented 4 years ago

BTW applications can already see a user's premium_type via OAuth (if the user authorizes), exposing it in the API (like Discord has just done for flags) would just make it easier for bots to access it.

Lachee commented 4 years ago

BTW applications can already see a user's premium_type via OAuth (if the user authorizes), exposing it in the API (like Discord has just done for flags) would just make it easier for bots to access it.

Same logic could be applied to a users connections or locale. It would be more convenient but there are other concerns than just convenience for bot developers.

LikeLakers2 commented 4 years ago

@advaith1 I don't think "People will think it's a bug in the bot" or "I'd like to make it visible in a profile command" are big enough reasons to justify making it visible to every bot.

The way I'm understanding it, it's only visible behind an OAuth scope because most regular applications should never need it. Maybe some applications could do something a little extra with it (like with the profile command example, being able to mark the user as having Nitro in a profile command), but that's pretty much the end of the legitimate uses.

An application being able to know someone's Nitro status willy-nilly unfortunately opens up a lot of vectors of abuse. Nitro scams from applications could much more easily target those users who don't currently have Nitro, as an example. Or some bots may lock commands and features behind Nitro status, making users feel as though they're being forced to buy Nitro (which Discord doesn't want to happen if the user isn't comfortable giving Discord money). We already see this happening with the server boosting feature, where channels and other stuff can be locked behind boost status.

This isn't the sort of thing that you could just... rely on people not to abuse. You can't put up a "Do not enter" sign at an unlocked door, then expect every single person to obey by not opening it... you've got to lock that door to all but those with the keys. That door (the OAuth scope) is locked behind a set of keys (per-user permission) because Discord cannot just trust that people won't mess with what's behind it (the nitro status). If the bot absolutely needs to see that information, for any reason, it should ask the user for it.

Artuto commented 4 years ago

Why not make it whitelist only like the Privileged Gateway Intents?

You'd have to submit an explaination of why you want it.

ghost commented 4 years ago

@Artuto - If this feature was added, it'd take a while for all hundred or whatever Discord Libraries to even make a breaking change to allow this. Unless you're making requests to the API yourself.

HPaulson commented 4 years ago

@Artuto - If this feature was added, it'd take a while for all hundred or whatever Discord Libraries to even make a breaking change to allow this. Unless you're making requests to the API yourself.

I don’t this this is an appropriate reason for either argument. Any change or new feature discord adds has to also be added to every library. This is like saying that Discord shouldn’t release their new UX features because it will take libraries a good while to implement those. Also, popular libraries such as Discord.js and Discord.py I’ve noticed update extremely quickly on new features like this, due to their large community. When Custom Status was released, DiscordJs had the ability to read a users status the same day it was released (just a recent example). Not sure this is a fair argument or point to make in this context

VoltrexKeyva commented 4 years ago

Kinda it would be really good if it was only available to bots that are verified or have gateway intent privileges... I've been working literally 3 and a half weeks on my userinfo command and got the normal badges done except for the nitro badges... Which i really want, so i would like to see this feature added to verified bots and bots with gateway intent access

muddyfish commented 4 years ago

I don't think this should be available outside of the way to get this information already - with the identify oauth scope

mdashlw commented 4 years ago

If it's available to any user, i don't see why it can't be for bots. It's basically forcing people to use selfbots just for nitro check

HPaulson commented 4 years ago

If it's available to any user, i don't see why it can't be for bots. It's basically forcing people to use selfbots just for nitro check

Although I understand your point here, this simply isn’t true. Yes, it is available to users, and yes it should be available to bots the same way (in my opinion - read my other posts for more detail on my split thoughts), however this does not in any way promote self bots. Rather than using a self bot people Would simply... not use the info. I highly doubt people would go out of the way to make a selfbot just to display this info, not worth it what-so-ever.

djthegr8 commented 3 years ago

Any updates / workarounds on this?

KartikJain14 commented 3 years ago

We Should Have to know whether a user has nitro or not if a normal user can see it why not bots?

ethrythedev commented 3 years ago

Any updates / workarounds on this?

If you check the users pfp for an animated gif, it will say