Нак, надо писать дальше, а то я этот чертов проект никогда не добью.
56 comments
Г-сп-дь всемогущий, какой же долбоеб писал документацию к этой библиотеке. Даже начальный пример с авторизацией приложению ТУПО НЕ ДОПИСАН. А ссылка на авторизацию вместо амперсандов выдает \u0026. То есть, "не юникод". Мне интересно, автор либы сам ее использовал вообще когда-нибудь? @dside Ага, и по идее AuthenticateToken мне должен выплюнуть наконец-то AccessToken? @dside Перун-громовержец, а что, интересно, мешало автору библиотеки упаковать все это в пару функций... @dside Ну типа, я столько уже обвяза над этой хероборой написал. @dside Слушай, а куда он мне его должен выплюнуть? https://pkg.go.dev/github.com/mattn/go-mastodon#Client.AuthenticateToken По идее, он только еггог возвращает. @dside А, все, он триггерит Client.Authentiacte. Собственно, потом надо будет вылавливать access token из Client, я правильно понял? @drq по задумке библиотеки, видимо, надо просто использовать этот Client напрямую, и он сам к запросам подставит токен. https://github.com/mattn/go-mastodon/blob/master/mastodon.go#L201 @dside Да, но надо его как-то сохранить на попозже в конфиг, и потом его вставлять. Чтобы не регистрировать каждый раз новый апп :) @drq а, если так, то да, через Client.Config.AccessToken доставать и в NewClient скармливать обратно. @drq мне всё-таки кажется, что для твоего случая автор просто подразумевал вход по логину с паролем, чтобы при каждом запуске процесс получал новый access token и трогать его руками и тем более сохранять куда-то не было бы нужно. (Правда, для безопасности тут особого выигрыша нет, т. к. пароль фактически полностью содержит возможности токена. Но здесь мои полномочия всё.) @dside Во-первых, по логину с паролем я уже пробовал, во-вторых, не хотет. @drq ну, судя по коду Authenticate, у автора ни один из этих пунктов затруднений не вызвал :blobfoxupsidedown: @drq @drq ты же бота пишешь, не? Нахрена ему авторизация? В вебморде мастодона токен создать, и всё @drq настройки > разработчикам > создать приложение Токен подставлять в HTTP заголовок @drq по хорошему человеков тоже надо нормально авторизовать, но они уже привыкли.... @drq ...и смысл тогда? Ты просто реимплементируешь получение токена, которое уже есть :blobcatgooglyholdingitsheadinitshands: @mo Ну правильно. Один раз. А не открывать браузер, искать там в настройках настроек чего-то одному Сварогу известное. А дальше - токен. @drq ладно, кто я такая чтобы запрещать тебе ебаться :blobcatgooglyshrug: @dside У меня примерно так и сделано. Что интересно: если перед этим не скормить клиенту логин с паролем, он перебрасывает на промежуточную страничку типа "а вы точно уверены, что хотите вот это вот позволить?". Мне интересно, а может он в таком свете и строку эту дебильную сможет сам взять?... Но да ладно, это уже мечты. Главное доступ есть, конфиг сохраняется в жсон, загружается из него, и ленту домашнюю кажет. Теперь бы получить стрим этой самой ленты - чтобы не поллить по таймауту. @drq гипотетически да, его можно научить, если использовать в процессе получения кода redirdct_uri, который ведёт в приложение. Но для этого приложение должно быть доступно из браузера хотя бы с хоста с этим самым браузером. И нужно тащить в приложение вебсервер только ради вот этого вот одного запроса. А этому вебсерверу нужен порт. И что-то эта идея кажется всё менее привлекательной… @dside Хм. Ну, Го, кстати, умеет по-бырику раскручивать веб-сервер. Но ладно. А что мне мешает просто по этому урлу с особым значением сходить курлом и взять код? @dside Я хочу избежать их *хранения*. Ну, а так - это единственные реквизиты, доступные пользователю, пусть введет разок. @drq тогда проще спрашивать прямо логин с паролем и делать запрос токенов с grant_type: password, что и делает Authenticate. Выглядит он работоспособным. И никакая возня с /oauth/authorize и authorization code в процессе не появляется вообще. |
Так, подвижки есть, ссылку на авторизацию я таки выбил, хоть и кривовата она.