Чтобы быть полностью справедливым по отношению к команде Discourse, это отличается от проблемы, возникшей в декабре 2020 года. Тот самый последний пост по этой другой проблеме был опубликован непосредственно перед первым постом @dnfoz здесь, и это было более года назад. Проблема @dnfoz была опубликована всего 8 дней назад, а не несколько месяцев назад. Дело в том, что Twitter постоянно меняет свой API, потому что они — если быть откровенными — сами не знают, к чему они стремятся со своей платформой. Вот почему проблема, возникшая год назад, будет совершенно отличаться от проблемы, возникшей, скажем, неделю назад, особенно в случае с Twitter. И если бы это была проблема несколько месяцев назад, помимо осмоса и чтения мыслей, вы или кто-то другой должны были бы написать об этом, чтобы они знали.
Кажется, всё работает, кроме того, что при регистрации поле электронной почты не заполняется автоматически. Я что-то делаю не так? У меня с регистрацией через Google всё работает — там email подставляется автоматически.
Смотрите пример от @dnfoz. Дело в том, что каждый провайдер SSO работает по-разному: то, как это реализовано у Google, немного отличается от Twitter, а Twitter — один из самых сложных, если не самый сложный. API Twitter постоянно меняется, потому что у них самих нет чёткого понимания, что они делают, и они не проявляют уважения к разработчикам, создающим решения вокруг их API. Так что, если быть предельно честным: если мы, администраторы Discourse, или команда Discourse не будем постоянно отслеживать изменения в плагине со стороны Twitter, он будет постоянно ломаться именно так.
Спасибо за это. Да, я не думаю, что стоит тратить ещё время на изучение и возню с API Twitter, которые, как вы говорите, могут измениться в любой момент. Я уверен, что мои пользователи справятся!
Это не означает, что команда Discourse уже не работает над исправлением — они работают, и для восстановления работы на стороне администратора может потребоваться лишь обновление плагина. Проблема в том, что это хроническая проблема с Twitter, так как это плохо управляемая корпорация. Я пока оставлю свой плагин Twitter SSO в качестве опции, но Twitter, безусловно, не является безопасным и надежным вариантом, в отличие от любых других SSO.
Если у нас всё ещё возникают эти проблемы, можем ли мы попытаться воспроизвести ту же проблему на try.discourse.org? Мне удалось там успешно войти в систему с помощью своей учётной записи Twitter.
Вау, регистрация через Twitter на поддомене try в форуме, который вы только что поделили, прошла на ура. Это заставляет задуматься, не происходит ли здесь конфликта плагинов или какой-то уникальной конфигурации.
Как странно. У меня на сайте всё ещё наблюдается странное поведение. Это рабочая версия, поэтому я не могу менять слишком много настроек, но я постараюсь как могу разобраться в этом. Однако, если другие пользователи тоже сообщают об этом, значит, проблема не такая уж уникальная.
По сравнению с родительским постом здесь, Twitter визуально изменил способ настройки параметров. Вот то, что я настроил (по крайней мере, для моего экземпляра Discourse; в любом случае эти настройки безопасно обнародовать здесь на форуме):
РЕДАКТИРОВАНИЕ: Возможно, это имеет значение. Хотя опция запроса электронной почты у пользователей всё ещё доступна, больше нет настройки для включения аутентификации через сторонние сервисы, как упоминалось в родительском посте. Для тех, кто уже настроил вход через Twitter до этого изменения, это может не стать проблемой, так как Twitter, возможно, сохранит их настройки и выполнит миграцию. Однако я больше не вижу этой опции, что может создать проблемы для таких пользователей, как я и @dnfoz, которые настраивают свои форумы впервые и которым требуется сторонняя аутентификация для успешного завершения процесса рукопожатия SSO.
РЕДАКТИРОВАНИЕ 2: Вот ещё одна мысль на размышление. Ожидает ли Discourse Twitter API версии 1 или 2? Для новых разработчиков версия 1 больше не предлагается; они лишь упоминают миграцию для тех, кто уже использовал v1, без упоминания поддержки устаревшей версии v1 для новых пользователей. Подробности здесь:
Как описано по ссылке выше, похоже, что они позволяют мигрировать с v1 только существующим учётным записям разработчиков. Я не вижу способа или документации для включения v2 на новых учётных записях разработчиков, поэтому у меня есть только поддержка v2.
Таким образом, если предположить, что SSO и встраивание ожидают Twitter API версии 1, это может потребовать некоторых усилий по программированию для поддержки обеих версий API или отказа от поддержки v1, если такой двухсторонний подход невозможен.
РЕДАКТИРОВАНИЕ 3: Итак, прочитав форум разработчиков Twitter на платформе Discourse (какая ирония, что сам Twitter использует Discourse!), мои подозрения, кажется, почти полностью подтвердились. Согласно закреплённому баннеру (доступному здесь: Twitter Developers (twittercommunity.com)), новые разработчики не могут получить доступ к API версии 1.1:
Вы новичок на платформе и готовы начать?
Мы рекомендуем вам зарегистрироваться для получения доступа Essential и выполнить первый запрос к API.
После регистрации у вас будет проект с доступом Essential в вашей учётной записи, который предоставит вам следующее:
- 1 окружение приложения
- Возможность получать до 500 тыс. твитов в месяц
- Возможность использовать до 5 правил с конечной точкой отфильтрованного потока
- Доступ к большинству конечных точек Twitter API версии 2
- Вы не сможете получить доступ к конечным точкам стандартной версии 1.1, премиум-версии 1.1 или корпоративной версии
Да, это именно то, о чём я говорю: на сайте songwritingsteps.com подставляется «user1», а поле для email остаётся пустым.
Дайте знать, если разберётесь! Я уже бился головой об стену несколько часов ![]()
Нет, понятия не имею! Хотя я всегда могу запустить форум в виртуальной машине на локальном компьютере и попробовать разобраться, что происходит. На данный момент, однако, никаких зацепок нет. Я дейую вслепую, но, как уже упоминалось, подозреваю, что проблема в ожидании поддержки API версии 1. Необходимая устаревшая поддержка версии 1 больше отсутствует для новых аккаунтов разработчиков, как я только что показал.
Спасибо! Отличная работа, @Hifihedgehog. Мы изучаем наилучший путь развития и предоставим обновление, как только оно будет готово.
Спасибо всем за терпение.
Думаю, настроить вход через социальные сети на локальной машине нельзя. Для этого требуется действующий сертификат HTTPS. Есть ли у вас действующий сертификат для доступа к виртуальной машине на вашем локальном компьютере?
На самом деле, это не так уж сложно: я могу настроить SSH-туннель со своего VPS на локальную машину, а затем перенаправить его на прокси через свой веб-сервер, на котором уже установлен SSL-сертификат. ![]()
Хорошо, кажется, нам удалось разгадать загадку ![]()
Как отметил @Hifihedgehog, новые учётные записи разработчиков в Twitter изначально предоставляются по плану «Essential» и ограничены конечными точками API версии v2. Наш встроенный вход через Twitter в настоящее время требует доступа к конечным точкам версии v1.1. К счастью, это не проблема!
На диаграмме по адресу https://developer.twitter.com/en/products/twitter-api стоит обратить внимание на два важных момента:
Вы можете получить бесплатный доступ к API версии v1.1 по плану «Elevated». Для этого достаточно подать заявку через панель разработчика. Я нашёл этот процесс очень быстрым и простым. После этого вход через Twitter в Discourse стал работать безупречно ![]()
Я обновлю исходное сообщение, добавив это новое требование.
Боже, как же ты прав! Это заняло всего пару минут, и я мгновенно получил одобрение. Простые решения всегда приятны! ![]()
8 сообщений были перенесены в новую тему: Цитирование не работает, когда имя совпадает с именем пользователя
Если обновить секрет или ключ Twitter, повлияет ли это на существующих пользователей? Если да, есть ли способ это «исправить»? Я нашёл инструкцию для обновлений входа через Facebook — подойдёт ли этот скрипт?
cd /var/discourse
./launcher enter app
rails c
UserAssociatedAccount.where(provider_name: "twitter").delete_all
Мои ссылки на Twitter перестали встраиваться после настройки входа через Twitter. Сначала я настроил ключи потребителя Twitter, но вход не работал как ожидалось. Сейчас я на тарифном плане «Elevated», поэтому у меня должен быть доступ к конечной точке v1.1.
Вход теперь работает как ожидалось, но при перестроении поста со ссылками на Twitter они остаются просто обычными ссылками.
При перестроении старого поста, в котором уже были встроены твиты, встраивания удаляются.
Есть какие-то идеи?
EDIT: Похоже, это было исправлено в последнем обновлении (2.9.0.beta5 - 0ae7b43018)




