Там два варианта авторизации:
1. Либо приложение имеет web-server, который принимает HTTP(s) запросы - URL обработчика вбивается как CallBackURL зарегистрированного приложения. И на этот обработчик приходит токен в запросе (после того как пользователь авторизует приложение).
2. В качестве CallBackURL зарегистрированного приложения указывается заглушка на стороне yandex и после аторизации пользователь попадает на эту страницу и видит там свой токен. Его нужно копи-пастить в приложение.
Есть еще вариант с промежуточным проверочным кодом - пользователь после авторизации приложения получает не очень длинный (8 знаков) код, его копи-пастит в приложение, а приложение с этим кодом (он дается на 10 минут) идет к яндексу и получает там токен.
Вариант с промежуточным кодом конечно более гуманен по отношению к пользователю. Но лучше всего бы сделать автоматическое получение (вариант 1).
Однако в случае с клиентской программой на обычном ПС - на нем не реально открыть сокет на LISTEN что бы он светился в сети - почти все сидят за NAT-ами, причем часто не за одним.
Можно конечно поднять свой сервачек и там принимать запросы (идентификацию запросов можно организовать через поле state запроса на авторизацию), а собственно с клиентской машины спрашивать по state информацию с сервера.
Но этот вариант требует сервака с белым IP

т.е. нужны будут бабки - полюбому на поддержание инфраструктуры.... чего хотелось бы избежать...