API Token в заголовок SOAP для поддержки Professional Edition - PullRequest
0 голосов
/ 02 ноября 2018

Наше приложение успешно прошло проверку безопасности и об обмене приложениями. Приложение использует API-интерфейсы метаданных для создания параметров удаленного сайта, но API-интерфейсы метаданных не поддерживаются в профессиональной редакции. Мы получили токен API от Salesforce, который мы вставили в мыльный заголовок, как показано ниже. Хотя он работает так, как ожидалось в версии для разработчиков и предприятий, в профессиональной версии мы получаем 500 (ошибка сервера). Кто-нибудь, пожалуйста, предложите, если что-то не так с приведенной ниже реализацией и дальнейшими действиями.

'<?xml version="1.0" encoding="utf-8"?>' + 
            '<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'+

                '<env:Header>' + 

                    '<urn:SessionHeader xmlns:urn="http://soap.sforce.com/2006/04/metadata">' + 
                        '<urn:sessionId>sessionhere</urn:sessionId>' + 
                    '</urn:SessionHeader>' + 
                     '<CallOptions>' +
                    '<client>blah/blahtoken/</client>' + 
                    '</CallOptions>' +
                '</env:Header>' + 
                '<env:Body>' +
                     '<createMetadata xmlns="http://soap.sforce.com/2006/04/metadata">' + 

                        '<metadata xsi:type="RemoteSiteSetting">' + 
                            '<fullName>Metadata</fullName>' +
                            '<description>Metadata API Remote Site Setting for Declarative Rollup Tool (DLRS)</description>' + 
                            '<disableProtocolSecurity>false</disableProtocolSecurity>' + 
                            '<isActive>true</isActive>' + 
                            '<url>https://some.ap4.visual.force.com</url>' +
                        '</metadata>' +
                    '</createMetadata>' +
                '</env:Body>' + 
            '</env:Envelope>';

1 Ответ

0 голосов
/ 03 ноября 2018

ошибка сервера 500 будет SOAP-ответом, более подробную информацию об ошибке смотрите в теле.

Возможно, проблема в том, что ваш заголовок CallOptions не находится в правильном пространстве имен XML, он должен быть

<CallOptions xmlns="http://soap.sforce.com/2006/04/metadata">
    <client>blah/blahtoken/</client>
</CallOptions>
...