Minecraft spawning in potions?

Solution 1:

The data value for potions is 373 and the "damage value" for an extended Night Vision potion is 8262, and you want to give quantity 1. Using these in a command block hooked up to your button, with @p used to select the nearest player, looks like so:

/give @p 373 1 8262

Assuming you want this button to work only once, you can put an RS NOR latch between the button and the command block, so that the button activates the SET input (optionally with a hidden button accessible only to you attached to the RESET input, for easy testing).

You may also want to use the /say command to alert the player that they just got the potion, since in the heat of the moment it's easy to overlook something quietly popping into your inventory, if your not expecting it. They'll still have to ready and drink it.

Solution 2:

You can do /effect @p 16 (which is night vision) 999999 (which is forever) 255 (amplifier) you don't have to put in the parenthesis.

Solution 3:

As of Minecraft 1.9, potions are specified using NBT instead of cryptic numbers. Therefore, the command for giving a player an extended night vision potion is:

/give <player> potion{Potion:"minecraft:long_night_vision"}