我打算在Google App Engine上为项目使用Salesforce Bulk API。我已经开始写一些简单的测试代码通过Python的salesforce-bulk-api库创建使用批量API两个任务:当在Google App Engine上执行时,Salesforce Bulk API:InvalidSessionId(无法找到会话ID)
from salesforce_bulk_api import SalesforceBulkJob
header = ['WhoId', 'Subject']
messages = [('[...]', 'Test Task 1'),
('[...]', 'Test Task 2')]
os.environ['SALESFORCE_INSTANCE'] = '[...]'
os.environ['SALESFORCE_SECURITY_TOKEN'] = access_token
job = SalesforceBulkJob('insert', 'Task')
job.upload(
header,
messages
)
results = job.results()
for r in results:
print('Result ' + str(r))
执行这个代码在本地工作正常和两个任务出现在Salesforce。但是,在Google App Engine上运行代码时,它会失败。作业/批细节:
<error xmlns="http://www.force.com/2009/06/asyncapi/dataload">
<script/>
<exceptionCode>InvalidSessionId</exceptionCode>
<exceptionMessage>Unable to find session id</exceptionMessage>
</error>
从我的文档中看到,会话ID需要通过每一次头字段X-SFDC-Session
发送。我已经检查过,并且在本地执行以及通过Google App Engine执行设置。看起来像这样的标题:
{ 'Content-Length': '183',
'Accept-Encoding': 'gzip, deflate',
'Accept': '*/*',
'User-Agent': 'python-requests/2.9.1',
'X-SFDC-Session': u'[...]',
'Connection': 'keep-alive',
'Content-Type': u'application/xml; charset=UTF-8'}
任何人有提示如何调试/解决此问题?谢谢!
- Manfred
这仍然是一个持续的问题?这可能是值得的[报告项目问题跟踪](https://github.com/safarijv/salesforce-bulk-api/issues)。有一个[请求提及unicode的请求](https://github.com/safarijv/salesforce-bulk-api/pull/4),但目前还不清楚这是否解决了您的问题。 – Adam
你有没有想过这个? – NSjonas