В плагине запустить на выполнение сниппет
Добрый вечер ребята.
Яндекс разрешил добавлять оригинальные тексты для сайтов с нулевым Тиц.
Ну решил я автоматом значит отправлять тексты в панель вебмастера) Разобрался с авторизацией приложения, с отправкой текстов и уже было обрадовался что все близится к концу, но не тут то было!
Замечательный параметр Callback URI чтоб ему пусто было и временный токен…
Токен выдается только на время — соответственно его нужно не один раз получать, а Callback URI принуждает обращаться только с одной странички.
Подскажите как мне решить эту задачку? Запустить сниппет именно с той странички что прописана как Callback URI?
Или возможно есть другие варианты?
Заранее спасибо за советы!
Яндекс разрешил добавлять оригинальные тексты для сайтов с нулевым Тиц.
Ну решил я автоматом значит отправлять тексты в панель вебмастера) Разобрался с авторизацией приложения, с отправкой текстов и уже было обрадовался что все близится к концу, но не тут то было!
Замечательный параметр Callback URI чтоб ему пусто было и временный токен…
Токен выдается только на время — соответственно его нужно не один раз получать, а Callback URI принуждает обращаться только с одной странички.
Подскажите как мне решить эту задачку? Запустить сниппет именно с той странички что прописана как Callback URI?
Или возможно есть другие варианты?
Заранее спасибо за советы!
Поблагодарить автора
Отправить деньги
Комментарии: 10
Объясни, в чем именно проблема?
Я тексты в Яндекс не отправлял, поэтому мне не понятно.
Я тексты в Яндекс не отправлял, поэтому мне не понятно.
В двух словах — есть сниппет, получает токен, авторизуется по протоколу OAuth 2.0, при запросе использует Callback URI… дальнейшие действия не суть…
Создал плагин на какое то событие, берет контент ресурса, отправляет в сниппет, но сниппет получит токен и отправит текст в панель вебмастера — только если будет вызван на странице Callback URI.
вот с этим и заморочка…
p.s. по сути вся проблема в получении токена при вызове сниппета из плагина…
Создал плагин на какое то событие, берет контент ресурса, отправляет в сниппет, но сниппет получит токен и отправит текст в панель вебмастера — только если будет вызван на странице Callback URI.
вот с этим и заморочка…
p.s. по сути вся проблема в получении токена при вызове сниппета из плагина…
Я наверное глупенький, но по-прежнему не вижу проблемы.
Почему нельзя вызвать сниппет из плагина?
Почему нельзя вызвать сниппет из плагина?
$modx->runSnippet('mySnippet', $myParams);
нет, это из меня фиговый объясняльщик!
требуемый ответ token|code, от OAuth-сервера, будет добавлен к redirect_uri
сниппет запущеный из плагина не отработает таким образом…
хотя я может чего не знаю?
Чтобы получить разрешение пользователя на выполнение действий с его личными данными, приложение должно перенаправить пользователя по следующему URL:
https://oauth.yandex.ru/authorize?response_type=<token|pre>&client_id=<client_id>[&display=popup][&state=<state>]
сначала получаем code, затем передав code получим token, при этом редиректит на Callback URI указанный при регистрации приложения.требуемый ответ token|code, от OAuth-сервера, будет добавлен к redirect_uri
сниппет запущеный из плагина не отработает таким образом…
хотя я может чего не знаю?
По идее, тебе нужно, чтобы отправкой на сервис и приемкой с него занимался плагин, всегда по одному адресу
Очень похоже на HybridAuth. Не пробовал через него авторизоваться и посмотреть в сессию? Там будет токен авторизации в массиве HA:: НЕ_ПОМНЮ.
http://sitename.ru/?action=send_text
Он же будет и Callback URI.Очень похоже на HybridAuth. Не пробовал через него авторизоваться и посмотреть в сессию? Там будет токен авторизации в массиве HA:: НЕ_ПОМНЮ.
до полного понимания того что ты написал потребуется время)))
HybridAuth да по такому же принципу работает…
Грубо говоря я прописываю sitename.ru/?action=send_text а плагин как то должен обрабатывать $_REQUEST['action']?
HybridAuth да по такому же принципу работает…
Грубо говоря я прописываю sitename.ru/?action=send_text а плагин как то должен обрабатывать $_REQUEST['action']?
Да.
Плагин, например, запускается на событие OnHandleRequest:
Возможно, тебе больше подойдут другие события, когда веб-страница уже загружена, типа OnWebPageComplete или OnLoadWebDocument.
Плагин, например, запускается на событие OnHandleRequest:
if ($modx->event->name == 'OnHandleRequest') {
if (!empty($_REQUEST['action']) && $_REQUEST['action'] == 'send_text') {
// Можно работать
}
}
Возможно, тебе больше подойдут другие события, когда веб-страница уже загружена, типа OnWebPageComplete или OnLoadWebDocument.
Доброе утро!
Василий, событие да другое должно быть, мне OnHandleRequest не подойдет, скорее всего OnDocPublished (отправка нужна только один раз). Но все манипуляции только в админке происходят и каким образом мне $_REQUEST['action'] слушать?
ну слушать то я его буду в плагине, но как оно там появится то? как мне эту цепочку запустить?
Уже по разному пробовал, если на OnDocPublished ставить то зависает при ответе от yandex…
Василий, событие да другое должно быть, мне OnHandleRequest не подойдет, скорее всего OnDocPublished (отправка нужна только один раз). Но все манипуляции только в админке происходят и каким образом мне $_REQUEST['action'] слушать?
ну слушать то я его буду в плагине, но как оно там появится то? как мне эту цепочку запустить?
Уже по разному пробовал, если на OnDocPublished ставить то зависает при ответе от yandex…
Не знаю.
убрал зависимость от Callback URI и все заработало как нужно!
Василий подскажи пожалуйста — тяжело ли кнопку сделать в админке MODX со своим событием?
Василий подскажи пожалуйста — тяжело ли кнопку сделать в админке MODX со своим событием?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.