API instantcms 2.x добавление новости

InstantCMS 2.X
#31 11 мая 2020 в 11:24


Столкнулся со схожей проблемой: регистрирую пользователя успешно через auth.signup. Затем хочу присвоить определенную группу этому пользователю (users.add_to_groups), и вот тут ошибка 71. При этом key и sig переданы корректные, новый user_id тоже.

Подскажите, куда копать?

@dominanta

Users.add_to_group — это админский экшн, нужна авторизация под админом. А вот для автоматического назначения группы пользователю после регистрации, настраивается в админке CMS. Доп. запрос тут делать не нужно.

Vunderkind

Благодарю за ответ.

Дело в том, что автоматически это одно, а тут через внешний скрипт регистрация в определенную группу нужна.
То есть надо дописать авторизацию под админом с сохранением в кукис?
#32 11 мая 2020 в 15:18



Столкнулся со схожей проблемой: регистрирую пользователя успешно через auth.signup. Затем хочу присвоить определенную группу этому пользователю (users.add_to_groups), и вот тут ошибка 71. При этом key и sig переданы корректные, новый user_id тоже.

Подскажите, куда копать?

@dominanta

Users.add_to_group — это админский экшн, нужна авторизация под админом. А вот для автоматического назначения группы пользователю после регистрации, настраивается в админке CMS. Доп. запрос тут делать не нужно.

Vunderkind

Благодарю за ответ.

Дело в том, что автоматически это одно, а тут через внешний скрипт регистрация в определенную группу нужна.
То есть надо дописать авторизацию под админом с сохранением в кукис?

@dominanta

Лучше вам в экшен регистрации добавить еще один параметр, и по его значению (true или false) переводить пользователя в группу определенную на стороне сервера. Либо вообще в запросе передавать id группы, а в экшене api уже добавить добавление пользователя в эту группу. Такие пути избавят Вас от излишних запросов от стороннего скрипта.

Тот вариант, что пытаетесь сделать Вы подразумевает регистрацию пользователя — затем вам нужно авторизоваться под админской учёткой — затем переместить пользователя в необходимую группу — и наконец разлогинить админа + если после регистрации нужен автологин зареганного пользователя, то дополнительно запрос на логин. 5 запросов необходимо сделать.


Лучше переписать или написать новый экшен регистрации.

Ну и самый простой вариант — в экшене add to group переменную admin_required в положение false. И ваша ошибка 71 уйдет.
#33 12 мая 2020 в 22:17




Столкнулся со схожей проблемой: регистрирую пользователя успешно через auth.signup. Затем хочу присвоить определенную группу этому пользователю (users.add_to_groups), и вот тут ошибка 71. При этом key и sig переданы корректные, новый user_id тоже.

Подскажите, куда копать?

@dominanta

Users.add_to_group — это админский экшн, нужна авторизация под админом. А вот для автоматического назначения группы пользователю после регистрации, настраивается в админке CMS. Доп. запрос тут делать не нужно.

Vunderkind

Благодарю за ответ.

Дело в том, что автоматически это одно, а тут через внешний скрипт регистрация в определенную группу нужна.
То есть надо дописать авторизацию под админом с сохранением в кукис?

@dominanta

Лучше вам в экшен регистрации добавить еще один параметр, и по его значению (true или false) переводить пользователя в группу определенную на стороне сервера. Либо вообще в запросе передавать id группы, а в экшене api уже добавить добавление пользователя в эту группу. Такие пути избавят Вас от излишних запросов от стороннего скрипта.

Тот вариант, что пытаетесь сделать Вы подразумевает регистрацию пользователя — затем вам нужно авторизоваться под админской учёткой — затем переместить пользователя в необходимую группу — и наконец разлогинить админа + если после регистрации нужен автологин зареганного пользователя, то дополнительно запрос на логин. 5 запросов необходимо сделать.


Лучше переписать или написать новый экшен регистрации.

Ну и самый простой вариант — в экшене add to group переменную admin_required в положение false. И ваша ошибка 71 уйдет.

Vunderkind

Благодарю, разобрался!
#34 14 мая 2020 в 05:56





Столкнулся со схожей проблемой: регистрирую пользователя успешно через auth.signup. Затем хочу присвоить определенную группу этому пользователю (users.add_to_groups), и вот тут ошибка 71. При этом key и sig переданы корректные, новый user_id тоже.

Подскажите, куда копать?

@dominanta

Users.add_to_group — это админский экшн, нужна авторизация под админом. А вот для автоматического назначения группы пользователю после регистрации, настраивается в админке CMS. Доп. запрос тут делать не нужно.

Vunderkind

Благодарю за ответ.

Дело в том, что автоматически это одно, а тут через внешний скрипт регистрация в определенную группу нужна.
То есть надо дописать авторизацию под админом с сохранением в кукис?

@dominanta

Лучше вам в экшен регистрации добавить еще один параметр, и по его значению (true или false) переводить пользователя в группу определенную на стороне сервера. Либо вообще в запросе передавать id группы, а в экшене api уже добавить добавление пользователя в эту группу. Такие пути избавят Вас от излишних запросов от стороннего скрипта.

Тот вариант, что пытаетесь сделать Вы подразумевает регистрацию пользователя — затем вам нужно авторизоваться под админской учёткой — затем переместить пользователя в необходимую группу — и наконец разлогинить админа + если после регистрации нужен автологин зареганного пользователя, то дополнительно запрос на логин. 5 запросов необходимо сделать.


Лучше переписать или написать новый экшен регистрации.

Ну и самый простой вариант — в экшене add to group переменную admin_required в положение false. И ваша ошибка 71 уйдет.

Vunderkind

Благодарю, разобрался!

@dominanta

Даже ввел Вам в заблуждение. При регистрации по умолчанию можно передать id группы, в которую регистрируешься
#35 12 декабря 2021 в 09:47

Доброго времени суток.
Проблема с  API и никак не получается продвинуться.

может кто подскажет ?
делаю в android studio язык программирования  kotlin !

вывести данные из типа контента в приложение не проблема всё получается а вот с добавлением из приложения уже проблемы — так как только месяц назад начал вникать в андройд разработку!

 api/method/users.get_sig (успешно)
 api/method/auth.login (успешно). 

sig, token, данные админа всё получаю!
потом, когда использую api/method/content.add_item
Получаю
[error_code] => 71
[error_msg] => Требуется авторизация пользователя

значить дело в Cookie — только передаю Cookie  — сразу ошибка выскакивает :

 

{«error»:{«error_code»:100,«error_msg»:«Один из необходимых параметров был не передан или неверен»,«request_params»:{«csrf_token»:«Ошибка csrf токена. Токен не передан или не верный.»}}}
хотя если не передавать Cookie  то этой ошибки не выходит, а только — ошибка 71

может кто направить в нужно направлении? спасибо

#36 14 декабря 2021 в 06:46

Обнаружил вот такой вопрос :
1. я делаю запрос что бы получить sig  и csrf_token
и получаю json с данными :
{«response»:{«sig»:"***",«csrf_token»:"***"},«session»:{«session_name»:"***",«session_id»:"***"}} — всё отработало 

2. затем  я делаю запрос что бы авторизоваться: и получаю ответ :
2-- {«response»:{«session_name»:"***",«session_id»:"***",«expires_in»:«28800»,«user_id»:«1»,«user_info»:..."}},«session»:{«session_name»:"***",«session_id»:"***"}}
вроде всё отработало правильно

Но в первом запросе есть session_id и во втором запросе есть session_id  и они почему то разные, хотя session_name одинаковые, вопрос какую использовать? и почему они разные? не как не получается добавить новость из приложения ((

 

 

 

#37 14 декабря 2021 в 11:58

 No Name, может быть вам немного сменить тактику и прежде чем посылать запросы из своего приложения, попробовать отправлять их в ручном режиме с помощью Postman, например. А когда уже станут понятны все запросы и все респонсы, то уже реализовать своё приложение.

#38 14 декабря 2021 в 12:02

Но в первом запросе есть session_id и во втором запросе есть session_id и они почему то разные, хотя session_name одинаковые, вопрос какую использовать? и почему они разные?

Запросы к api должны быть с поддержкой cookie. Разные они, потому что этой поддержки у вас нет. Параметры сессии должны передаваться в куке, где session_name — имя куки, session_id её значение.

#39 15 декабря 2021 в 08:20

 No Name, может быть вам немного сменить тактику и прежде чем посылать запросы из своего приложения, попробовать отправлять их в ручном режиме с помощью Postman, например. А когда уже станут понятны все запросы и все респонсы, то уже реализовать своё приложение.

IamB

да, если делаю эти запросы просто из браузера — то всё срабатывает, а вот в приложении именно проблема — видимо пока еще не хватает знаний как правильно  сохранить сессии! буду изучать ))

Добавлено спустя 3 минуты

Параметры сессии должны передаваться в куке, где session_name — имя куки, session_id её значение.

Fuze

да я это понимаю, но видимо пока еще знаний не хватает как это правильно реализовать в приложении, в браузере все методы работаю проверил!
но выше как я описал я же всё правильно делаю по шагам? тоесть вначале получить необходимо  sig  и csrf_token, а потом уже авторизироваться, ? и во всех этих запросах нужно предавать сессию ? 

Добавлено спустя 18 часов

всем большое спасибо за ответы — всё получилось! теперь из приложения данные на сайт добавляются как положено! спасибо

Добавлено спустя 1 минуту

всё дело было в сессиях как и сказал фузе, спасибо

Добавлено спустя 59 минут

подскажите есть ли метод для удаления записи? спасибо

#40 8 апреля 2022 в 23:13

Доброй ночи. Есть где-то примеры, как работать с InstantCMS Json API средствами PHP? 

Интересует именно добавление новости.

#41 13 мая 2022 в 12:06

подскажите есть ли метод для удаления записи? или подскажите  как написать этот метод? спасибо

#42 2 октября 2024 в 05:42

в метод content.add_item.news 
в  поле photo я передаю такую конструкцию полученную из метода  images.upload - 
{«big»:{«path»:«000\/u1\/f\/1\/33636348.jpg»,«url»:«https:\/\/site.ru\/upload\/000\/u1\/f\/1\/33636348.jpg»},«normal»:{«path»:«000\/u1\/4\/6\/4625352f.jpg»,«url»:«https:\/\/site.ru\/upload\/000\/u1\/4\/6\/4625352f.jpg»}}
но метод отрабатывает всё равно с ошибкой, 
{
    «error»: {
        «error_code»: 100,
        «error_msg»: «Один из необходимых параметров был не передан или неверен»,
        «request_params»: {
            «photo»: «Заполните поле»
        }
    }
}

подскажите как правильно передать?  спасибо

#43 3 октября 2024 в 12:16

ребята подскажите может кто шарит? очень нужно, всё дело встало из-за этой ошибки,
уже многих спросил не кто не может ответит, или только Fuze ждать когда ответит))))

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.