Как сделать программную авторизацию для desktop-приложения не используя браузер?, Как сделать программную авторизацию для desktop-приложения не используя браузер?
Здесь http://blogroll.pcmag.ru/go.php?nid=324703 дана пошаговая инструкция по проведению OAuth-авторизации. При реализации описанного там алгоритма мне не удаётся встроить соответствующий контрол в свое приложение. При программном выполнении методом GET запроса https://мой_портал.bitrix24.ru/oauth/authorize/?client_id=код_приложения&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A70005" я получаю не код "код_получения_авторизации" , а html-страницу с формой для авторизации. Этот же запрос из браузер будучи выполненным первый раз приводит к появлению в окне браузер веб-формы авторизации. После заполнения полей "ПОЛЬЗОВАТЕЛЬ" и "ПАРОЛЬ" браузер таки получает в адресной строке обещанный "код_получения_авторизации", а вместе с ним и некую куку, которая при последующих запросах из браузера играет некую волшебную роль позволяя более не видеть веб-формы авторизации.
Как же всё-таки пройти программно(БЕЗ БРАУЗЕРА) стадию авторизации и получить программно код "код_получения_авторизации" ?
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
Итак, попробую продолжить мучить вас дурацкими вопросами. Подскажите, почему, действуя в соответствии с вашими рекомендациями " ... 4. Для авторизации нужно открыть браузерное окно (или встроить соответствующий контрол в свое приложение) на адрес вида: https://мой_портал.bitrix24.ru/oauth/authorize/?client_id=код_приложения&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A70005"
я получаю "код_получения_авторизации" как вами и предсказано
НО ТОЛЬКО если использую БРАУЗЕР ? Выполнив этот запрос программно в ответ от сервера я получаю html-страницу с предложением авторизоваться. Помнится выполнив первый раз этот запрос в браузере я тоже прошёл через окно авторизации, но только однажды. Все последующие попытки повторить запрос в браузере завершались успешным получением "кода_получения_авторизации" без повторной авторизации. Как мне программно пройти авторизацию для последующего получения "кода_получения_авторизации" ? А может быть можно обойти авторизацию и получить "код_получения_авторизации" иным путём ?
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
Maks Sidorenko пишет: Если честно, то я как-то не понимаю, в чем ваша проблема.
Цитата
Попробовал изменить запрос (ошибся в имени поля SECOND_NAME указав SECOND111_NAME) - получил ответ: {"result":true}
Логично. Попытка изменить существующую запись с ID=1. Несуществующие поля проигнорированы. Обновление существующей записи пустым набором полей прошло успешно.
О "логичности" подобного поведения спорить не стану. Для меня, по крайней мере, этот ответ, как в прочем и его "логичность", оказались неожиданными. Ничего, привыкну.
Теперь попробую переформулировать суть моей, надеюсь уже решённой, проблемы. Вчера утром неоднократно выполнив вот такой запрос (ключ изменён): https://masterlab.bitrix24.ru/rest/crm.contact.update.json?&auth=990215cd9960cdba187b83200189658a&ID=1&FIELDS[SECOND_NAME]=123 получил ответ: {"result":true} Заходя браузером в запись с ID=1 после каждой попытки коррекции НЕ ОБНАРУЖИВАЛ в ней желаемого значения. Поле SECOND_NAME оставалось пустым. Потом приступил к экспериментам. Намеренно создавал некорректные запросы и смотрел на реакцию системы. О результатах писал выше. Не получив желаемого результата занялся другими работами (обычно пишу десктопные приложения на Java, а сейчас опять вернулся к Qt C++).
Ближе к вечеру решил попробовать ещё раз "победить" мою "проблему битрикса". Начал с того же утреннего запроса https://masterlab.bitrix24.ru/rest/crm.contact.update.json?&auth=990215cd9960cdba187b83200189658a&ID=1&FIELDS[SECOND_NAME]=123 И каково же было моё удивление, когда я обнаружил, что значение поля SECOND_NAME таки изменилось на желаемое "123". А ведь я ничего не менял в своём коде. Для перепроверки себя самого (и битрикс-РЕСТ-АПИ) попробовал программно изменить запись с другим ID. История успеха повторилась. Подумал, что, наверно не один я что-то правлю. Потому и написал последний вчерашний восторженный пост. Спасибо за ваши ответы.
Поймал себя на невольном обмане. Перепроверил сейчас свой запрос с учётом вашего совета "попробуйте указать имя параметра fields в нижнем регистре". Вы правы - так работает. Видимо я вчера проводя серию экспериментов с синтаксисом в запросе таки изменил регистр у параметра FIELDS на нижний. Потому он "волшебным" образом и заработал. Неожиданная для меня чувствительность к регистру. Впредь мне наука будет.
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
Что значит это ответ сервера ? Мои изменения поля SECOND_NAME у записи с ID=1 приняты ? Если да, то почему я не вижу этих изменений через браузер ?
Кстати, этот же запрос был выполнен мною и из браузера. Ответ сервера был идентичен, а изменений я таки не наблюдаю.
Что я делаю не так?
Попробовал изменить запрос (ошибся в имени поля SECOND_NAME указав SECOND111_NAME) - получил ответ: {"result":true} Попробовал изменить запрос (ошибся в ID записи указав ID=111) - получил ответ: false
Поясню: ID=1 - есть такая запись ID=111 - нет такой записи
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
В документации сказано: В общем виде вызов метода REST выглядит вот так: https://домен_Б24.bitrix24.{ru|en|de}/rest/имя_метода.транспорт?параметры_метода&auth=ключ_авторизации
Подскажите пожалуйста, каков синтаксис для "параметры_метода" ? Буде проще на примере вызова этого метода. Как следует оформить строку "https://домен_Б24.bitrix24....?параметры_метода&..." ?
P.S. Пытаюсь написать приложение на VB.NET. Использую для доступа на сайт HttpWebRequest.
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
Сдвинулся с мёртвой точки. Получил статус партнёра. Далее по пунктам: 1. Зарегистрировать в МП приложение с отмеченной галочкой "Использует только API" (не обязательно, но типично). Зарегистрировал.
2. Создать в МП версию приложения, указывая ссылку вида http://localhost:7000. Создал.
3. Установить созданную версию на тестовый портал при помощи ссылки "Установить на свой портал Битрикс24" в форме редактирования версии. Установил
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
Дмитрий, спасибо за ответ. Прежде чем просить помощи на форуме, я конечно же начал с чтения этого API. Читал также и это http://blogroll.pcmag.ru/go.php?nid=324703 А вот воспользоваться предложенным алгоритмом не смог. И здесь http://dev.1c-bitrix.ru/rest_help/oauth/index.php и здесь http://blogroll.pcmag.ru/go.php?nid=324703 первым пунктом предлагается это "регистрируется своё приложение в Маркетплейсе Битрикс24". А какое это "моё" приложение ? То самое консольное, которое только писать собираюсь ? Где это место (URL) регистрации найти ?
[ Закрыто] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
Шеф поставил задачу: "Из десктопного(GUI либо консольного) приложения надо получить доступ к CRM https://nnn.bitrix24.ru/crm и внести изменения в "Сделку".
Язык написания этой "волшебной проги" - любой. Смыл действия - бухгалтер, оформив накладную в VB-приложении жмёт кнопку "отправить в CRM" , в этот момент вызывается эта самая "волшебная прога" и по известному ей ИД меняет некоторые поля в ранее оформленной "CRM-Сделке" . Особенность - прога у буха на десктопе в Конотопе, а сервер CRM расположен в облаке (nnn).bitrix24.ru.
Подскажите - как такую "волшебную прогу" сотворить? Какой язык удобней взять за основу? Где прочитать(получить) АПИ? Каков общий "дизайн" такого решения подскажите? Может, где примеры есть подобного решения?