HybridAuth и email с разных провайдеров

Настроил Google,Yandex,Vkontakte,Odnoklassniki,Mailru,Facebook,Twitter,Instagram
Google,Mailru и Facebook передают почту пользователя и он может оставлять комментарии, остальные не дают почту пользователя, только его логин, поэтому комментарии он оставлять не может (плагин Tickets).
Как быть в этом случае?
Павлик Мышкин
07 марта 2014, 04:56
modx.pro
2
1 758
0

Комментарии: 29

Василий Наумкин
07 марта 2014, 09:02
0
Заставить пользователя указать почту.

Ваш Кэп.
    Павлик Мышкин
    07 марта 2014, 11:21
    0
    Ну этот вариант мне не понравился, например на этом сайте — нажал задать вопрос — залогинился через VK — ввел почту и готово. Страница потеряна. А желание написать комментарий у пользователей пропадает быстро.
    Пётр Молчанов
    07 марта 2014, 11:02
    +1
    Ну можно проверять при, например, OnPageInit, указана ли почта, если нет, то весь сайт не доступен (затенять, редиректить на одну страницу — это уж как вам захочется) и просить указать мыло. Но этот вариант не крут
      Павлик Мышкин
      07 марта 2014, 11:34
      0
      Например в модальном окне попросить ввести почту, чтоб человек со страницы не ушел.
        Пётр Молчанов
        07 марта 2014, 12:30
        0
        Я так делал раньше, но в итоге отказался от соц.сетей)
      Павлик Мышкин
      07 марта 2014, 11:19
      0
      Тоесть тут все дело в сервисах тех? Они не дают почту?

        A
        A
        07 марта 2014, 11:40
        0
        <сарказм>Нет блин это разработчик решает с каких сервисов брать почту, а с каких нет.</сарказм>
          Павлик Мышкин
          07 марта 2014, 11:46
          0
          Я не первый день пользуюсь интернетом. Когда где-либо оставляю комментарии с помощью сервисов — нигде не спрашивали почту. Поэтому, возможно, разработчик и решает, но стоит подождать новой версии.

          Если нечего ответить по делу — не отвечайте.
            A
            A
            07 марта 2014, 12:33
            0
            фейспалм

            Ты работаешь за cms modx revo и должн знать что в revo наличие email у пользователя обязательно.
              Павлик Мышкин
              07 марта 2014, 12:44
              -3
              Если нечего ответить по делу — не отвечайте.
                Василий Наумкин
                07 марта 2014, 12:50
                +1
                Не хочешь получать ответов — не задавай вопросы.
                  Павлик Мышкин
                  07 марта 2014, 12:57
                  0
                  Артур не ответил ни на один вопрос. Ситуация такова, что среди людей всегда найдется один тролль. Я прошу его не участвовать в этой дискуссии. А его эмоции (сарказм, фэйспалм) мне абсолютно не помогут в решении моего вопроса.
                    Василий Наумкин
                    07 марта 2014, 13:02
                    0
                    Артур — не троль, а довольно активный и не всегда вежливый читатель моего блога.

                    Когда у меня настроение не очень — я реагирую ровно так же, потому что все эти вопросы про почту разбирались много раз.

                    Тебе же лень поискать, подумать и разобраться самостоятельно, как сделать нужное тебе решение? Это, как бы сказать, иногда напрягает.
                      Павлик Мышкин
                      07 марта 2014, 13:11
                      0
                      Я не хочу переходить на личности.
                      Ну и советы в духе самому написать — ну разве я задавал бы тут тогда вопрос, если смог сам написать?

                      Вот что случилось в последние несколько лет с людьми. Читаешь зарубежку — люди помогают друг другу, как в русские обсуждения зайдешь — так ппц… один ответ «Кури мануал», «пересобери ядро» и «изучи с++».

                      Я искал — только нигде ответа не нашел на свой вопрос. Потому и задал новый.
                      Я не требую никого отвечать — не знаете — не отвечаете, знаете подскажите.
                      Илья, Петр и вы подсказали решение. На этом спасибо.
                        Василий Наумкин
                        07 марта 2014, 13:17
                        0
                        Тебе не нравится, когда отвечают не по делу, а мне не нравится, когда ты указываешь, кому можно отвечать — а кому нет.

                        Наверное, в следующий раз лучше сразу задавать вопросы в «зарубежку» — там добрые люди помогут и не будут писать обидных ответов, как тут.
                          Павлик Мышкин
                          07 марта 2014, 15:12
                          0
                          Я ж не указываю. Прошу просто по существу, причем снизу есть очень развернутый ответ, за что спасибо. Всем спасибо, ни на кого не обижаюсь, наоборот, доволен ответами на вопрос.
                A
                A
                07 марта 2014, 14:48
                +1
                Тут такое дело, на тех ресурсах где для комментирования не нужно вводить email заранее продумывалась вся логика. И там заранее было решено что для существования сервиса не нужно пользователю вводить email. Здесь же немного не так, тут изначально авторы MODX решили что email пользователю просто не обходим. Любой подход пытающийся изменить это делается через костыли. И отсюда все разработчики делают свои компоненты с учетом изначальной философии авторов. Точно так же и Василий не стал изобретать велосипед и просто сделал свой компонент на основе философии авторов modx.

                Пользователи выразили пару хороших советов как избежать проблем и отсутствием email у пользователей

                1 заставить ввести email
                2 если нет email ввести какой нибудь произвольный.
                3 использовать только тех провайдеров которые отдают email пользователя

                А если тебе не нравится ни 1 из вариантов, то я не думаю что ради тебя будут переделывать бесплатный компонент. Разве что если ты не хочешь прислать свой pull request на github который исправит все недостатки.

                Что касается способа моего выражения мысли, то я никого не хотел оскорбить, мне жаль что ты все это так остро воспринял, хотя я тебя предупредил что это сарказм.
                  Павлик Мышкин
                  07 марта 2014, 15:06
                  0
                  Нравятся все 3 варианта — значит решения есть, к тому-же есть выбор.

                  Насчет email пользователя — пользователи без email создаются. Просто у них нет прав оставлять комментарии.

                  К сожалению участвовать в доработке не могу, обделен знаниями в php.

                  Тогда, как я понимаю, связка HybridAuth + Ticket (с моими пожеланиями входа с любого сервиса и моим незнанием php) работать будет не в полной мере и удобнее будет использовать только Tickets c гостевым доступом.

                  P.S. Воспринял остро, каюсь, наболело.
          Пётр Молчанов
          07 марта 2014, 12:31
          0
          Насколько я знаю, не отдает мыло тока ВК, с остальными проблем у мя не было
            Павлик Мышкин
            07 марта 2014, 12:46
            0
            А у меня не отдает мыло еще и Yandex,Odnoklassniki,Twitter,Instagram
              A
              A
              07 марта 2014, 15:45
              0
              Yandex отдает мыло, Twitter тоже. Остальные не знаю.
                A
                A
                07 марта 2014, 15:48
                0
                ТЫ можешь зайти в БД и посмотреть в таблице modx_ha_user_services какие сервисы отдали email а какие нет.
                  Павлик Мышкин
                  07 марта 2014, 15:54
                  0
                  Проверил Твиттер и Яндекс — не отдают. В БД с Яндексом вообще неясно, а Твиттер мыло не передал. Буду шерстить настройки этих сервисов.
            Илья Уткин
            07 марта 2014, 12:36
            +1
            Ловите регистрацию нового пользователя плагином и, если у него нет email'а, ставьте какой-нибудь несуществующий test234532432@test.ru, тогда от пользователя ничего не потребуется, но и он не получит уведомление о том, что ему ответили на коммент.
              Павлик Мышкин
              07 марта 2014, 12:47
              0
              Спасибо. Попробую такой вариант.
                Василий Наумкин
                07 марта 2014, 12:52
                +1
                Ловить регистрацию необязательно, можно и по OnWebPageInit работать.

                Лично я так и делаю, когда требую почту.
                Алексей Смирнов
                10 июля 2015, 21:16
                0
                Я смотрю тенденция к отказу от ввода почты при регистрации через соц сеть нарастает…
                Вот и требуется не обязывать человека вводить e-mail.
                3 решения хороши попробую подменять почту… 2й пункт… Но это костыль-костыль.
                Много сайтов которые не заставляют вводить почту, поэтому чую что пора выключить обязательность почты на этапе регистрации для оставления коментария.
                К слову ВК отдает почту на данный момент, а вот ФБ и ТВ — нет…
                Я оссобо не силен в программировании буду пробовать что-то… Жаль что идеология не всегда совпадает с требованиями заказчика.
                Вот как удобно — написал сообщение, нажал кнопку авторизации через соц.сеть. и отзыв ушел на сайт. Быстро удобно.
                А, системно сделать Алерт который будет постоянно давить на то чтобы пользователь ввел свой реальный пароль.
                Чую скоро будет плагин или расширение на эту тему. :)))) ибо ООочень нужно…
                  Валерий
                  13 октября 2017, 17:24
                  0
                  Прошло два года с последнего поста, но новую тему создавать не хотелось бы.
                  Twitter добавил возможность запрашивать email у пользователей (как отдельный пункт), в провайдере прописана проверка:
                  $includeEmail = isset($this->config['includeEmail']) ? (bool) $this->config['includeEmail'] : false;
                  $response = $this->api->get('account/verify_credentials.json'. ($includeEmail ? '?include_email=true' : ''));
                  И обработка:
                  if($includeEmail) $this->user->profile->email = (property_exists($response, 'email')) ? $response->email : "";
                  if($includeEmail) $this->user->profile->emailVerified = (property_exists($response, 'email')) ? $response->email : "";
                  Ссылки все проверил, они актуальны api_base_url и прочее.
                  Но система email не подхватывает. Где может быть проблема? Может быть в Twitter еще должны проверить мою учетную запись?
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  29