Интеграция с Salesforce INVALID_SESSION_ID с использованием Postman

При нажатии https://login.salesforce.com/services/oauth2/токен с помощью Postman.

ПОСТ https://login.salesforce.com/services/oauth2/токен

Интеграция с Salesforce INVALID_SESSION_ID с использованием Postman

Ответ:

Интеграция с Salesforce INVALID_SESSION_ID с использованием Postman

Я получаю токен, но когда я пытаюсь сделать что-то простое, например GET /limits,

ПОЛУЧИТЬ https://na73.salesforce.com/services/data/v45.0/limits

Интеграция с Salesforce INVALID_SESSION_ID с использованием Postman

ответ:

[
    {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
    }
]

Странно то, что когда я меняю все свои учетные данные на бесплатную «учетную запись разработчика», созданную с другим адресом электронной почты, все работает нормально. Все запросы и заголовки одинаковы, за исключением значений из любой учетной записи.

После изучения множества тем здесь я подумал, что, возможно, моя производственная учетная запись (та, которую я публикую сейчас) не была ВКЛЮЧЕНА API. Оказывается, в моей производственной учетной записи API ВКЛЮЧЕН.

Я также попытался изменить https://login.salesforce.com/services/oauth2/токен на https://na73.salesforce.com/services/oauth2/токен, как предлагалось в некоторых потоках, но это просто истекло.

При сравнении разрешений обеих учетных записей они кажутся идентичными, и я подтвердил, что у меня нет проблем с учетными данными (идентификатор клиента, секрет клиента, токен безопасности, токен доступа), все они, похоже, скопированы правильно.

Есть идеи для нуба отдела продаж?

Отредактируйте вопрос и опубликуйте весь запрос «GET limit». Я имею в виду особенно HTTP-заголовок «Авторизация», я хочу видеть там «Bearer sessionidgoeshere» (вы можете обрезать/запутать идентификатор, если вы параноик). «/limits» не является правильной конечной точкой, это будет что-то вроде «/services/data/v45.0/limits», если только вы не набрали его здесь в спешке. Использование My Domain вместо login.salesforce.com имеет значение только при входе в систему. Кроме того, вы должны использовать конечную точку (и идентификатор сеанса), которые были возвращены вам при входе в систему.

eyescream 13.05.2019 23:17

@eyescream обновлено

j_quelly 14.05.2019 00:30
instance_url вам ответили "na73", вы отправили GET на "mi73". Опечатка здесь, в stackoverflow или действительно в Postman? В остальном все выглядит хорошо
eyescream 14.05.2019 07:02

@eyescream тоже нет, я просто набрал mi для своего экземпляра

j_quelly 14.05.2019 16:03

Здесь заканчиваются идеи. Если вы вошли в систему, все должно «просто работать». Попробуйте ПОЛУЧИТЬ URL-адрес, который вы получили в ответе на вход в систему под параметром id, он должен вернуть некоторую информацию о вашем собственном пользователе. Попробуйте другой URL, например /services/data/v45.0/query?q=SELECT+id,name+FROM+user+LIMIT+‌​5. Попробуйте в другом приложении, например workbench.developerforce.com -> утилиты -> обозреватель REST? Может быть, что-то в Postman неправильно передает переменные / искажает идентификатор сеанса (может быть, ненужное urlencoding?)

eyescream 14.05.2019 18:23

Я согласен, это должно «просто работать», но это не так. Я ПОЛУЧАЮ https://login.salesforce.com/id/00D1I000000kiBrUAI/0051I0000‌​04VGU1QAO, и он возвращает некоторую информацию о моей учетной записи. Сомневаюсь, что это почтальон. Как я упоминал в посте, это прекрасно работает с другой бесплатной учетной записью «разработчика». Когда я пытаюсь нажать {{instance-url}}/services/data/v45.0/query?q=SELECT+id,name+‌​FROM+user+LIMIT+5, как было предложено, я все равно получаю INVALID_SESSION_ID. Workbench вроде работает, а через Postman ничего. POS

j_quelly 14.05.2019 18:59
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
11
6
9 992
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

После борьбы с этим в течение нескольких дней я исключил, что это проблема с Почтальоном. Какой мусор. Просто следуйте https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/quickstart_code.htm и вместо этого используйте команды curl. Если я скопирую необработанную команду curl в почтальон, а затем запущу, она по-прежнему будет давать сбой с INVALID_SESSION_ID, но отлично работает в ZSH.

Вот вам и полезный графический интерфейс

Вы пробовали решение @Apocawaka для изменения настроек Postman? Это решилось для меня после внесения Follow Authorization Header изменения

usernameabc 13.04.2020 20:00
Ответ принят как подходящий

Я на самом деле исправил это после того, как навсегда ударился головой об это. Вам нужно перейти на вкладку настроек и включить параметр Follow Authorization Header.

Следуйте настройкам заголовка авторизации

учитывая, что вопрос касается Почтальона, ваш скриншот помог. Замена Follow Authorization Header на on решила проблему. Сэкономил мне кучу времени.

usernameabc 13.04.2020 19:59

ОТЛИЧНЫЙ !! СПАСИБО @Apocawaka !! Трачу много времени с этим вопросом о БОЖЕ кк. спасибо

Chiarato 04.06.2020 02:38

Вот оно. ?

Rado 20.06.2020 22:02

У меня была такая же проблема, и хотя это наполовину решило проблему для меня, это было неправильно. Например. при создании записи с использованием этого метода она фактически не создавала запись. Однако это дало мне подсказку - и если я отключил «Автоматически следовать перенаправлениям» в Postman, то «Местоположение» в заголовке ответа сообщило мне, каким было мое доменное имя должен. Исправление этого в моем первоначальном запросе устранило проблему. Параметр «Следовать за заголовком аутентификации» больше не требуется и может использовать значения по умолчанию Postman, и он также успешно создал запись.

Dan 14.06.2021 17:17

Просто хотел отметить, что когда я использовал «токен носителя» и кнопку «использовать токен» Postman, он вставил id_token в заголовок авторизации. Убедитесь, что вы передаете токен доступа.

Cleverlemming 29.10.2021 06:16

Я здесь, в 2021 году, и для меня решением было не «Следовать за заголовком авторизации», а токен доступа имел другой instance_url, чем ожидалось. Используйте это значение instance_url в _endpoint, и все в порядке.

У меня была такая же проблема, даже при активации Follow Authorization Header

По сути, носитель авторизации не устанавливается напрямую, поэтому я добавил его на вкладке Pre-request script.

pm.request.headers.add({key: 'Authorization', value: 'Bearer {{_accessToken}}' });

Теперь работает как шарм.

Другие вопросы по теме