Как заранать Рест Веб Сервис с другого СФ Енвайремента?
String userName = 'myUserName';
String pass = 'MyPassword';
String token = 'mySecurityToken';
String endPoint = 'endPoint';HttpRequest req = new HttpRequest();
req.setMethod('GET');
Blob headerValue = Blob.valueOf(userName + ':' + pass + token);
String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue);
req.setHeader('Authorization', authorizationHeader);
req.setEndpoint(endPoint);Http http = new Http();
HTTPResponse res = http.send(req);System.debug('BODY: '+res.getBody());
System.debug('STATUS:'+res.getStatus());
System.debug('STATUS_CODE:'+res.getStatusCode());
Етот код дает: {"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}
Кароче не проходит Аутеризация.
Если req.setHeader('Authorization', authorizationHeader); заменить на req.setHeader('Authorization', 'OAuth ' + SessionId ); при етом захардкодить Сешен АйДи то все пашет. Тоесть проблема не в ВебВервисе
Как заранать Рест Веб Сервис с другого СФ Енвайремента? [code] String userName = 'myUserName'; String pass = 'MyPassword'; String token = 'mySecurityToken'; String endPoint = 'endPoint'; HttpRequest req = new HttpRequest(); req.setMethod('GET'); Blob headerValue = Blob.valueOf(userName + ':' + pass + token); String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue); req.setHeader('Authorization', authorizationHeader); req.setEndpoint(endPoint); Http http = new Http(); HTTPResponse res = http.send(req); System.debug('BODY: '+res.getBody()); System.debug('STATUS:'+res.getStatus()); System.debug('STATUS_CODE:'+res.getStatusCode()); [/code] Етот код дает: {"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"} Кароче не проходит Аутеризация. Если req.setHeader('Authorization', authorizationHeader); заменить на req.setHeader('Authorization', 'OAuth ' + SessionId ); при етом захардкодить Сешен АйДи то все пашет. Тоесть проблема не в ВебВервисе
На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже.
endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.
На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже. endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.
endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.
endPoint = 'https://cv-test-dev-ed.my.salesforce.com/services/apexrest/v3/accounts'
[quote="wilder"]На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже. endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.[/quote] endPoint = 'https://cv-test-dev-ed.my.salesforce.com/services/apexrest/v3/accounts'
endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.
endPoint = 'https://cv-test-dev-ed.my.salesforce.com/services/apexrest/v3/accounts'
[quote="remember"][quote="wilder"]На сколько я знаю авторизация типа Basic и OAuth это не одно и тоже. endPoint напиши плиз. Нужно знать куда ты вообще пытаешься зайти.[/quote] endPoint = 'https://cv-test-dev-ed.my.salesforce.com/services/apexrest/v3/accounts'[/quote] [url=https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_understanding_authentication.htm]Начни отсюда[/url]
правильно подсказали, если пытаешься получить токен в rest контесте, то авторизация будет через oAuth, смотри login-password flow как подсказали выше.
правильно подсказали, если пытаешься получить токен в rest контесте, то авторизация будет через oAuth, смотри login-password flow как подсказали выше.
Та да. Всем спасибо я розобралса уже...
Та да. Всем спасибо я розобралса уже...